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