双击打开一个新的winform并关闭调用者窗口

时间:2013-09-30 20:12:15

标签: c# winforms

我有一个名为Form1的C#winform,这个winform有一个列表和一个按钮。 我在按钮中添加了click()事件,并在列表中添加了doubleclick()事件。 两个事件都调用相同的方法:(在 form1.designer.cs 中)

this.myList.DoubleClick += new System.EventHandler(this.myMethod);
this.myButton.Click += new System.EventHandler(this.myMethod);

myMethod中,我想执行以下操作:

  1. 打开一个类型为Form2的新winform,并使其成为活跃的winform。

  2. 关闭来电者winform(种类为Form1),不再需要此表单。

  3. 我是这样做的:(在 form1.cs 中)

    private void myMethod(object sender, EventArgs e)
    {
         Form2 frm = new Form2();                 
         this.dispose();
    }
    

    当list {double}单击事件调用myMethod时,myMethod结束时,会出现空指针异常。 当它被按钮点击事件调用时,它可以正常工作。

    我也试过this.close(),并且行为相同。

    我的问题:

    1. 我应该如何正确地编写myMethod所以它会为按钮点击事件以及列表双击事件进行所需的操作?

    2. 按钮和列表有什么区别?为什么它对按钮有效,但崩溃了?

    3. 由于

1 个答案:

答案 0 :(得分:1)

您可以隐藏Form1并显示Form2。这会引发一些问题,例如关闭Form2 不会关闭Form1

this.Hide();
var form2 = new Form2();
form2.ShowDialog();