困惑问题:mdi窗体,父窗体控件如何调用子窗体内的控件的事件处理程序
如题:如题:父窗体上有一工具栏按钮BUTTON1,子窗体上有一TEXTBOX2和BUTTON2,BUTTON1按钮按下后,调用BUTTON2的事件处理程序.   
 BUTTON2的事件处理程序: 
 	private   void   button2_Click(object   sender,   System.EventArgs   e) 
 		{ 
 			TextBox2.text= "调用成功 ";		 
                                                          }   
 我把button2_Click变成PUBLIC后还是不对,请高手解答.还有人说是要将子窗体作为参数传入父窗体,在子窗体内声明一个公有的EVENT,但我不知如何调用,请给点代码.
------解决方案--------------------设你的子窗体为FromSub,则在主窗体的Button1的Click事件中写如下的代码: 
 private void button1_Click(object sender, EventArgs e) 
 { 
 	FormSub f = this.ActiveMdiChild as FormSub; 
 	if (f != null) 
 	{ 
 		f.callButtonclick(); 
 	} 
 } 
 在FromSub中编写如下的代码:   
 internal void callButtonclick() 
 { 
 	//以下的两个语句都可以实现调用button1_Click事件. 
 	//button1.PerformClick(); 
 	button1_Click(this.button1, new EventArgs()); 
 } 
 private void button1_Click(object sender, EventArgs e) 
 { 
 	MessageBox.Show( "调用成功! "); 
 }   
 按上面说的写好代码后运行试试看成功不!
------解决方案--------------------那就这样写就可以了,不用你写的这么麻烦 
 mainForm中两个button,分别为button1和button2 
 private void button1_Click(object sender, EventArgs e) 
 { 
       mdiForm3 temp = new mdiForm3(); 
       button2.Click += new EventHandler(temp.button1_Click); 
       temp.Show(); 
 }   
 mdi窗体中的button如下:注意是public的 
 public void button1_Click(object sender, EventArgs e) 
 { 
       MessageBox.Show( "dddd "); 
 } 
 以上程序在vs2005下測試通過。