首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

,C# 关于委托的使用

2012-11-06 
求助,C# 关于委托的使用我有2个窗体 。分别是1和2;窗体1中有个datagridview控件 ,我想通过窗体2里面一个点

求助,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);

}
[解决办法]

C# code
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();        }    } 

热点排行