我有一个从数据库加载数据的 DataGridView。每行都有一个“查看”按钮,当我单击它时,会打开另一个带有特定信息的表单,但仍然打开带有 DataGridView 的主表单。我用这段代码做到这一点:
FormView fr = new FormView(id);
fr.ShowDialog();
问题是我不能同时打开几个FormView,因为焦点仍然在第一个打开的FormView上。我怎样才能做到这一点?
当您在表单上使用 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();
ShowDialog
打开一个模态表单,这意味着该ShowDialog
方法在用户关闭表单之前不会返回。
改用fr.Show
方法。
你可以改变这个
fr.ShowDialog();
到
fr.Show();
你需要做:
FormView fr = new FormView(id);
fr.Show();
以非模态方式显示它们,以便执行可以继续并允许您显示更多。