Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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# 如何知道在form1中单击按钮的时间,但在form2 C中知道#_C#_Event Handling - Fatal编程技术网

C# 如何知道在form1中单击按钮的时间,但在form2 C中知道#

C# 如何知道在form1中单击按钮的时间,但在form2 C中知道#,c#,event-handling,C#,Event Handling,C#。你好我有两个表单=>Form1和一个按钮以及Form2。我想知道如何处理Form1中Form2按钮的事件。因此,当我在form2中单击时,我想知道在form1中做些什么,form1可以订阅form2的事件。您需要在Form1中的Form2上有一个句柄,但您只需编写: instanceOfForm2.Button.Click += handlerInForm1; Form1需要引用Form2。然后,您只需将Form1中的事件处理程序连接到Form2中的按钮 // code in form1

C#。你好我有两个表单=>Form1和一个按钮以及Form2。我想知道如何处理Form1中Form2按钮的事件。因此,当我在form2中单击时,我想知道在form1中做些什么,form1可以订阅form2的事件。您需要在Form1中的Form2上有一个句柄,但您只需编写:

instanceOfForm2.Button.Click += handlerInForm1;

Form1需要引用Form2。然后,您只需将Form1中的事件处理程序连接到Form2中的按钮

// code in form1 might look something like

public void SubscribeToEvents()
{
   // get Form2 reference
   var form2 = GetForm2Reference();
   form2.Button.Click += ButtonOnForm2EventHandler;
}

public void ButtonOnForm2EventHandler(object sender, EventHandlerArgs e)
{
   // some code
}

如其他人所述,但未公开控制或查找参考资料(如果您已经拥有):

在form2中,创建一个发送其他订阅方法的方法按钮,单击:

   public void SubscribeToButton(EventHandler eh) {
       button1.Click += eh;
   }
在表格1中,订阅表格2:

   form2.SubscribeToButton(this.f2_button_Click);
并在其中包含一个方法,该方法将在单击时执行

   private void f2_button_Click(object sender, EventArgs e) {
   }

事实上,我写的顺序是错误的,所以请威胁form1为form2,反之亦然。

您使用的是Webforms还是MVC?