【问题标题】:How to Update DataGridView dynamically in Windows Forms?如何在 Windows 窗体中动态更新 DataGridView?
【发布时间】:2017-06-28 01:02:47
【问题描述】:

如果存在重复/类似问题,我深表歉意。

我有两种形式:输出的结果只是一个 DataGridView 和 Main_Form,它计算结果形式的值。输入是通过一个“文件夹”进行的,该文件夹具有各种文件,经过一些计算,这些文件会生成一些值。这些值应该放在 DataGridView 中。

我的问题是“文件夹”的这些文件是通过其他应用程序动态生成的。如何在不创建 Result 表单的新实例的情况下更新我的 DataGridView?

我正在创建 Result 表单的新实例,所以目前我的代码如下所示。我会在特定时间段过去后打破无限循环......比如说 20 分钟。

while(true)
{
   FileInfo fi = new FileInfo(path);
   if (Directory.EnumerateFiles(path).Any())
   {
       System.IO.DirectoryInfo d = new DirectoryInfo(path);
       FileInfo[] Files = d.GetFiles("*.*");
       foreach (FileInfo f in Files)
       {
           if (IsFileLocked(f)) // since files are generated run-time
              System.Threading.Thread.Sleep(500); // wait                         
           // code that computes values for currently f existing files
           frm = new Result(parameters);
           frm.Show();
   }
   else
      System.Threading.Thread.Sleep(10000);
}

【问题讨论】:

    标签: c# forms winforms datagridview


    【解决方案1】:

    所以问题是知道何时更新DataGridView?如果您从文件中获取数据,您可以使用FileSystemWatcher 来检测文件更改并更新DataGridView。我没有看到表单代码,因此如果您想在不创建新实例的情况下刷新网格,则需要检测 Result 表单中的更改并在那里更新。

    【讨论】:

      猜你喜欢
      • 2015-04-18
      • 2016-05-23
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多