如何在C#中打开多个窗体?

5

我有一个DataGridView,其中的数据是从数据库中加载的。每一行都有一个“查看”按钮,当我点击它时,会打开另一个窗体并显示特定的信息,但是主窗体中的DataGridView仍然打开着。我使用以下代码实现:

FormView fr = new FormView(id);
fr.ShowDialog();

问题是我无法同时打开多个表单视图,因为焦点仍然在第一个打开的表单视图中。我该怎么做?
4个回答

4

当你在一个窗体上使用 ShowDialog 方法时,它会显示并等待类型为 DialogResult 的响应。但是,当你只需要显示一个窗体而不需要响应时,可以简单地调用 form.Show() 方法。
以下是代码:

当您需要结果时:

Form f = new Form(); 
DialogResult res = f.ShowDialog();  

//code stops here until you return something of type DialogResult  
if (res == System.Windows.Forms.DialogResult.OK)  
    I_Will_Run_Just_When_DialogReult_Returned_Is_OK();  

当您只想显示表单时:

f.Show();  
I_Will_Run_Anyway_Right_After_Showing_Form(); 

3

ShowDialog打开的是一个模态窗体,这意味着ShowDialog方法将不会返回直到用户关闭该窗体。

请使用fr.Show方法代替。


1

您可以更改此内容

fr.ShowDialog();

fr.Show();

0

你需要做的是:

FormView fr = new FormView(id);  
fr.Show();

以非模态方式显示它们,以便执行可以继续并允许您显示更多内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接