我使用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();
}
答案 0 :(得分:4)
Form2正在作为对话框打开。按下的按钮是否也可以定义为CancelButton(CancelButton属性将在form2上)。这样做会在事件处理程序完成后自动关闭对话框。
答案 1 :(得分:3)
如果没有更多详细信息,则无法确定,但如果Form2
中的button2具有分配给DialogResult
属性的值,则会在单击按钮时自动隐藏表单。在设计器中打开Form2,选择按钮并检入属性网格。如果DialogResult属性不是“None
”,则这是预期的行为。
从Button.DialogResult属性的MSDN文档:
如果此属性为
DialogResult
被设置为None
以外的任何其他内容, 如果显示父表单 通过ShowDialog
方法, 单击该按钮将关闭父级 形式没有你必须挂钩 任何事件。表格DialogResult
然后将属性设置为 {。1}}时的按钮 单击按钮。