2017-06-28 42 views
0

如果存在重复/类似问题,我非常抱歉。如何在Windows窗体中动态更新DataGridView?

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

我的问题是,'文件夹'有通过其他应用程序动态生成这些文件。如何更新我的DataGridView而不创建Result窗体的新实例?

我正在创建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); 
} 

回答

0

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

相关问题