如何在C#中打开多个表单?

时间:2012-08-21 10:11:13

标签: c# forms datagrid

我有一个DataGridView,其中包含从数据库加载的数据。每行都有一个“查看”按钮,当我点击它时,另一个窗体打开时会显示特定信息,但仍然会打开带有DataGridView的主窗体。我用这段代码做到了这一点:

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

问题是我无法同时打开多个FormView,因为焦点仍然在第一个打开的FormView中。我怎么能这样做?

4 个答案:

答案 0 :(得分:4)

当您在显示的表单上使用ShowDialog并等待DialogeResult类型的响应时,但是当您只需要显示表单而不需要响应时,您只需调用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(); 

答案 1 :(得分:2)

ShowDialog会打开一个模态表单,这意味着在用户关闭表单之前,ShowDialog方法不会返回。

改为使用fr.Show方法。

答案 2 :(得分:0)

你需要这样做:

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

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

答案 3 :(得分:0)

你可以改变这个

fr.ShowDialog();

fr.Show();