[非提问]C#利用事件完成两个窗体的传值
窗体间的传值有很多方法,最简单的就是设置所有权方法。不过利用事件也是一种方法。顺便学习下事件.
1,建立两个窗体,Form1和Form2.Form1上有一个BUTTON控件,用于show出Form2.还有一个lable控件,用于看效果.form2上只有一个button控件,用于触发事件.
2,form1代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{//单击该按钮时SHOW出第二个窗体
Form2 fm2 = new Form2();
fm2.myevent += new Form2.mydelegate(gengxin);//在SHOW出窗体的同时订阅FORM2的事件,调用gengxin()方法.
fm2.ShowDialog();
}
public void gengxin() //用于修改label的方法
{
this.label1.Text = "改了吗";
}
}
3,Form2代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form2 : Form
{
public delegate void mydelegate();//定义一个委托
public event mydelegate myevent;//定义上诉委托类型的事件
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//在单击该窗体上的按钮时触发事件
if(myevent!=null)
{
myevent();
}
}
}
}
}
4,对事件了解不深,希望大家指教!