如何在Windows窗体中动态更新DataGridView?

时间:2017-06-28 01:02:48

标签: c# forms winforms datagridview

如果存在重复/类似问题,我感到非常抱歉。

我有两种形式:结果谁的输出只是一个DataGridView和Main_Form,它计算Result表单的值。输入是通过'文件夹'它有各种文件,经过一些计算后,会生成一些值。这些值应该放在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);
}

1 个答案:

答案 0 :(得分:0)

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