也可以把委托中的参数写成:
public delegate void mydelegate(object sender, myEventArgs e);
其中myEventArgs是一个类,从EventArgs类继承下来的。在这个类中可以添加任何类型的自定义参数用于传值。在Form2中:
private void button1_Click(object sender, EventArgs e)
{
//在单击该窗体上的按钮时触发事件
if(myevent!=null)
{
myEventArgs e = new myEventArgs();
e.自定义参数1 = 值;
e.自定义参数2 = 值;
......
myevent(this, e);
}
}在Form1中:
public void gengxin(object sender, myEventArgs e) //用于修改label的方法
{
this.label1.Text = e.自定义参数;
}
原贴在:http://topic.csdn.net/u/20080626/17/1742fccb-1513-4543-9f9f-045660d24666.html子窗体传值有多种方法,我觉得这种方法比较好,想试下,但不知道怎么做,有人能给我完整代码吗?
form1有个textbox1,一个button1,form2有个textbox1,一个button1
用以上的方法实现button1,弹出form2,再把form2的textbox1的值传给form1的textbox1并显示出来.
public delegate void mydelegate(object sender, myEventArgs e);
其中myEventArgs是一个类,从EventArgs类继承下来的。在这个类中可以添加任何类型的自定义参数用于传值。在Form2中:
private void button1_Click(object sender, EventArgs e)
{
//在单击该窗体上的按钮时触发事件
if(myevent!=null)
{
myEventArgs e = new myEventArgs();
e.自定义参数1 = 值;
e.自定义参数2 = 值;
......
myevent(this, e);
}
}在Form1中:
public void gengxin(object sender, myEventArgs e) //用于修改label的方法
{
this.label1.Text = e.自定义参数;
}
原贴在:http://topic.csdn.net/u/20080626/17/1742fccb-1513-4543-9f9f-045660d24666.html子窗体传值有多种方法,我觉得这种方法比较好,想试下,但不知道怎么做,有人能给我完整代码吗?
form1有个textbox1,一个button1,form2有个textbox1,一个button1
用以上的方法实现button1,弹出form2,再把form2的textbox1的值传给form1的textbox1并显示出来.
2. Form1有label1和button1,相关代码如下: private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.MyEvent += Msg;
form.Show(); }
public void Msg(string str)
{
label1.Text = str;
}3. Form2有textbox1和button1,相关代码如下: public event Action<string> MyEvent;
public Form2()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
if (MyEvent != null)
{
MyEvent(textBox1.Text);
}
}4. 运行,弹出Form1,点按钮,弹出Form2,在textbox输入值,并点按钮,将修改Form1的label1的text。小实例很简单,要代码的话,加我群好了,个人主页有,就不上传到下载区了。