C# 如何从对话框结果| C打开新表单#

C# 如何从对话框结果| C打开新表单#,c#,winforms,C#,Winforms,我正在OnChanged()中使用对话框结果(FileSystemWatcher),如下所示: if (dialogResult == DialogResult.Yes) { new Form2().Show();       } 但当我点击“是”按钮时,新表单将被打开为“已挂起”(无响应),请告知 是这样做的: var frm = new Form2() if (frm.ShowDialog()==DialogResult.Yes) { //write your code here

我正在OnChanged()中使用对话框结果(FileSystemWatcher),如下所示:

if (dialogResult == DialogResult.Yes)
{
    new Form2().Show();      
}
但当我点击“是”按钮时,新表单将被打开为“已挂起”(无响应),请告知

是这样做的:

var frm = new Form2()
if (frm.ShowDialog()==DialogResult.Yes)
{
 //write your code here
}

对于OnChange,必须按如下方式调用任何GUI:

Form2 frm=new Form2;
    frm.Show();
    frm.Hide();
     if (dialogResult == DialogResult.Yes)
     {
    // For calling a GUI For inside thread On FileSystemWatcher using Invoke

    frm.Invoke((MethodInvoker)delegate {
    frm.Show();
     });
if(dialogResult==dialogResult.Yes)
{
新表单2().ShowDialog();

}

您能在这里再显示一些代码吗?不要这样做。曾经您可以设置,但决不能以这种方式阻止FSW处理程序。曾经将该代码移到其他地方(在UI线程上调用另一个例程,了解您可能会使用模式窗口将其淹没);除了与代码内联的注释外,通过解释您的答案如何解决问题,添加一些上下文。