2011-04-26 107 views
0

所以,我得到了这两种形式,一种是按钮,当你点击它时,它会创建另一个按钮可见。这部分工作正常,这是问题部分C# - 多个窗体帮助!

在另一种形式,当你点击原始按钮时弹出,当我点击Form2上的CLOSE按钮时,它的Suppost使Form1上的按钮变为隐形,但我只能参考这个表格...

Form1 Form1 = new Form1();

这将创建一个新窗体,我想使用EXSISTING OPEN ONE! - 我该怎么做呢!

- 编辑---

有人说,这

Form2 form2 = new form2(); 
form2.ShowDialog(); 
this.button.Visible = false; 

会的工作,这是不对的,我不需要打开一个新的窗口2,我需要引用已经打开FORM2

+1

如果你粘贴你的代码我会帮你出 – 2011-04-26 19:39:47

+0

表格。的WinForms? Web表单? WPF?我假设你发布的是winform,你能证实吗? – Oded 2011-04-26 19:40:36

+1

“这是错的,...” - 为什么接受答案? – 2011-04-26 20:20:30

回答

1

所有你需要做的是以下几点:

Form2 form2 = new form2(); 
form2.ShowDialog(); 
this.button.Visible = false; 
0

当您创建Form2并在Form1中显示它(可能通过构造函数)或注册Form2的Closing事件时,您可以传入Form1的引用,并在该事件上设置按钮的可见性属性。

0

当您从Form1的窗口2,你要重视形式2.

你应该这样做与任何其他点击事件的OnClose()事件。

然后在你的Form2_OnClose()中,你可以使button.Visible = false;

3

你需要做的是添加一个事件处理程序的FormClosing或FormClosed事件,然后做你想做的事,事件处理,像这样:

就像这样:

private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 form = new Form2(); 
     form.FormClosing += new FormClosingEventHandler(form_FormClosing); 
     button2.Visible = true; 
     form.Show() //Or form.ShowDialog(), your choice 
    } 

    void form_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     button2.Visible = false; 
    } 
+0

我相信他问了Form2关闭时如何使Form1中的按钮可见。 – 2011-04-26 19:42:57

+0

事实上,他说,当我关闭新窗体时,如何让按钮2变为隐形...那就是这段代码的作用 – thorkia 2011-04-26 19:44:18

+0

“当我点击Form2上的CLOSE按钮时,其(原文如此)suppost使Form1上的按钮变为隐形” 您的代码创建Form1的第二个实例。诚然,我们可能在同一件事情上开着车,但原始文章的含糊不清让人难以理解。 – 2011-04-26 19:45:26

1

首先,关闭大写锁定或让你的手指离开shift键。

其次,你可以在你的第二种形式创建一个类型为Form1的一个变量,然后传递一个参考的第一种形式的第二,即在启动Form2的事件处理程序的构造函数,

Form2 f2 = new Form2(this); 

您现在将有一个参考回到您的第一个表单。