如果存在重复/类似问题,我感到非常抱歉。
我有两种形式:结果谁的输出只是一个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);
}
答案 0 :(得分:0)
所以问题是知道何时更新DataGridView
?如果要从文件中获取数据,可以使用FileSystemWatcher检测文件更改并更新DataGridView
。我没有看到表单代码,因此如果您想在不创建新实例的情况下刷新网格,则需要检测Result
表单中的更改并在那里进行更新。