我有一个DataGridView,其中包含从数据库加载的数据。每行都有一个“查看”按钮,当我点击它时,另一个窗体打开时会显示特定信息,但仍然会打开带有DataGridView的主窗体。我用这段代码做到了这一点:
FormView fr = new FormView(id);
fr.ShowDialog();
问题是我无法同时打开多个FormView,因为焦点仍然在第一个打开的FormView中。我怎么能这样做?
答案 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();