5

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

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

问题是我不能同时打开几个FormView,因为焦点仍然在第一个打开的FormView上。我怎样才能做到这一点?

4

4 回答 4

5

当您在表单上使用 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(); 
于 2012-08-21T10:18:03.477 回答
3

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

改用fr.Show方法。

于 2012-08-21T10:12:29.233 回答
1

你可以改变这个

fr.ShowDialog();

fr.Show();
于 2012-08-21T10:50:22.197 回答
0

你需要做:

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

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

于 2012-08-21T10:13:13.227 回答