我有两个表单(Form1和Form2)。我在Form1中有一个MenuItem帮助>更多信息。我需要一个像这样的代码......
当MenuItem帮助>单击Form1中的更多信息时,Form2应显示,但不应禁用MenuItem更多信息。 Form1应该被禁用。
在Form2中我有一个Button。如果我单击该按钮,则应关闭Form2并启用Form1。
我无法在Form1的MenuItemMoreInfo_Click中创建Form2的对象实例,因为如果我单击它10次,那么将打开10个Form2。因此,为了避免这种情况,我需要在单击MoreInfo一次后禁用Form1。
答案 0 :(得分:3)
对于此行为,您需要将form2显示为Dialog
。您还需要使用按钮或代码设置DialogResult
以确保其正确关闭。
只需致电:
new Form2().ShowDialog();
在您的菜单中点击处理程序,它将在顶部显示并禁用其他表单,直到Form2
关闭。
如果您需要检查用户点击的按钮,可以使用以下内容:
if (new Form2.ShowDialog() == DialogResult.OK)
//the user clicked the button assigned to OK!
答案 1 :(得分:0)
Form1代码:
private void item1ToolStripMenuItem_Click(object sender, EventArgs e)
{
new Form2().Show();
this.Visible = false;
}
表格2代码:
private void button1_Click(object sender, EventArgs e)
{
((Form1)Application.OpenForms["Form1"]).ShowDialog();
}