求助,C# 关于委托的使用
我有2个窗体 。分别是1和2; 窗体1中有个datagridview控件 ,我想通过窗体2里面一个点击按钮 来刷新datagridview数据,请问用委托的话怎么实现? 谢谢了。 希望能有大牛来解答。详细的代码麻烦写一下。我还是新手呢。
[解决办法]
form1 中
private void button1_Click(object sender, EventArgs e)
{
Form2 fr2 = new Form2();
fr2.Tag = this;
fr2.Show();
}
public void UpdateGridView(DataTable d)
{
dataGridView1.DataSource =d;
}
form2中
private void button1_Click(object sender, EventArgs e)
{
DataTable table=new DataTable();
Form1 f = (Form1)this.Tag;
f.UpdateGridView(table);
}
[解决办法]
public delegate void WarnDelegate(); public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void Alarm() { //刷新Grid } private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); f2.WarnEvent += new WarnDelegate(Alarm); } } public partial class Form2 : Form { public event WarnDelegate WarnEvent; public Form2() { InitializeComponent(); } public void OnWarnEvent() { if (WarnEvent != null) { WarnEvent(); } } public void Warn() { OnWarnEvent(e); } private void button1_Click(object sender, EventArgs e)//点击它就会执行Form1中的Alarm来刷新Grid { Warn(); } }