我有两种形式:
Form1.cs的
namespace WindowsFormsApplication1
{
public partial class Form : System.Windows.Forms.Form
{
Form2 form2;
public Form()
{
InitializeComponent();
form2 = new Form2(this);
}
}
public void buttonCalculate2axis_Click(object sender, EventArgs e)
{
// some code - it isn't important
}
}
Form2.cs
Namespace WindowsFormsApplication1
{
public partial class Form2 : System.Windows.Forms.Form
{
Form form1;
public Form2(Form data)
{
InitializeComponent();
form1 = data;
}
private void Form2_VisibleChanged(object sender, PaintEventArgs e)
{
// some code - it isn't important
}
}
我尝试使用 Form2 中 Form1 的事件public void buttonCalculate2axis_Click(object sender, EventArgs e)
。因此,如果我按下 Form1 中的按钮,在 Form2 中,我将等待此事件,之后我可以在代码中进入下一步。
如果它可能我只使用private void Form2_VisibleChanged(object sender, PaintEventArgs e)
点击事件。
答案 0 :(得分:1)
如果带有按钮的表单引用了带有处理程序的表单,并且该处理程序是public
,那么您可以dynamically bind an event handler in code:
someButton.Click += new System.EventHandler(otherForm.SomeClickHandler);
在您的代码中,点击处理程序似乎在 Form1
中,并且由于您声称该按钮也位于Form1
中,因此不清楚是什么>完全你需要在这里做。但是如果public
中有Form2
处理程序,则可以使用form2.YourHandlerFunction
作为事件处理程序。
或者,如果Form2
代替了按钮,并且您希望在Form1
中使用处理程序,那么Form2
将使用上面的代码form1. buttonCalculate2axis_Click
作为事件处理程序。< / p>