日期:2014-05-18  浏览次数:20903 次

C# 一个窗体执行另一个窗体按钮事件并返回值
我在Form1里想执行Form2里的按钮事件,并返回值,该怎么写?

------解决方案--------------------
把Form2按钮事件用委托传过来试试!
------解决方案--------------------
探讨

把Form2按钮事件用委托传过来试试!

------解决方案--------------------
??
在Form2定义一个Public 的函数如:
public static int ButtonClick(object sender)
{
return 0;
}
Form2里面的buttonClick事件也可以调用该方法


在Form1里面调用就可以了。
Form2.ButtonClick(this);
------解决方案--------------------
把按钮处理内容放到共通类中,两个form都调用此共通处理函数就OK了。
------解决方案--------------------
public class Form1: Form
{
public event EventHandler Form2Click;

//点击了一个按钮
private void button1_Click(object sender, EventArgs e)
{
int abc = 1;
if (this.Form2Click != null)
{
this.Form2Click(abc, null);
}
}
}

public class Form2: Form
{
public Form2()
{
Form1 frm = new Form1();
frm.Form2Click += new EventHandler(frm_Form2Click); //注册事件
}

public void frm_Form2Click(object sender, EventArgs e)
{
int abc = (int)sender;
MessageBox.Show(abc.ToString());
}
}