C#Windows窗体突然消失

时间:2009-07-19 18:29:17

标签: c# .net winforms visual-studio-2008

我使用C#+ VSTS2008 + .Net 2.0开发Windows窗体应用程序。在Form1的button1事件处理程序中,我创建Form2,然后出现Form2。然后当Form2的button2的触发事件处理程序(button2是Form2的UI按钮元素)时,执行button2事件处理程序后,Form2将消失。这是我创建Form2的代码的一部分。任何想法导致Form2失败的想法都会消失吗?

// button1 belongs to Form1
private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2("www.google.com");
    form2.ShowDialog();
}

2 个答案:

答案 0 :(得分:4)

Form2正在作为对话框打开。按下的按钮是否也可以定义为CancelButton(CancelButton属性将在form2上)。这样做会在事件处理程序完成后自动关闭对话框。

答案 1 :(得分:3)

如果没有更多详细信息,则无法确定,但如果Form2中的button2具有分配给DialogResult属性的值,则会在单击按钮时自动隐藏表单。在设计器中打开Form2,选择按钮并检入属性网格。如果DialogResult属性不是“None”,则这是预期的行为。

从Button.DialogResult属性的MSDN文档:

  

如果此属性为DialogResult   被设置为None以外的任何其他内容,   如果显示父表单   通过ShowDialog方法,   单击该按钮将关闭父级   形式没有你必须挂钩   任何事件。表格DialogResult   然后将属性设置为   {。1}}时的按钮   单击按钮。