Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MDI父级中打开新子窗体时是否关闭子窗体?_C# - Fatal编程技术网

C# 在MDI父级中打开新子窗体时是否关闭子窗体?

C# 在MDI父级中打开新子窗体时是否关闭子窗体?,c#,C#,我有一个树状视图来打开每个子窗体,但是当我打开新的子窗体时,我仍然可以看到新的子窗体后面的前一个子窗体。我要做的是在打开新窗体时关闭旧的子窗体(childForm.Close();//不知何故无法工作) 查看表单对象的属性。存在对附加到MDI容器的所有表单的引用 另一种方法是将对窗体的引用存储在类本身中,如果打开另一个窗体,则关闭旧窗体: private Form1 myform1 = null; private Form2 myform2 = null; private void treeV

我有一个树状视图来打开每个子窗体,但是当我打开新的子窗体时,我仍然可以看到新的子窗体后面的前一个子窗体。我要做的是在打开新窗体时关闭旧的子窗体(childForm.Close();//不知何故无法工作)

查看表单对象的属性。存在对附加到MDI容器的所有表单的引用

另一种方法是将对窗体的引用存储在类本身中,如果打开另一个窗体,则关闭旧窗体:

private Form1 myform1 = null;
private Form2 myform2 = null;

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {
   string selectedNodeText = e.Node.Text;

   if (selectedNodeText == "1" && myform1 == null) {
       myform1 = new Form1()
       // ... some code ...
       if (myform2 != null) {
           myform2.Close();
           myform2 = null;
       }
   }
   if (selectedNodeText == "2" && myform2 == null) {
       myform2 = new Form2()
       // ... some code ...
       if (myform1 != null) {
           myform1.Close();
           myform1 = null;
       }
   }
}

这是今天第二次有人试图在面板上安装顶层窗口。这仍然行不通。我认为这是一个附带问题,尽管这是一个非常相关的评论。
private Form1 myform1 = null;
private Form2 myform2 = null;

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {
   string selectedNodeText = e.Node.Text;

   if (selectedNodeText == "1" && myform1 == null) {
       myform1 = new Form1()
       // ... some code ...
       if (myform2 != null) {
           myform2.Close();
           myform2 = null;
       }
   }
   if (selectedNodeText == "2" && myform2 == null) {
       myform2 = new Form2()
       // ... some code ...
       if (myform1 != null) {
           myform1.Close();
           myform1 = null;
       }
   }
}