一.子窗体关闭后刷新父窗体
1.父窗体代码
1 private void button1_Click(object sender, EventArgs e) 2 { 3 Form2 f = new Form2(); 4 f.OnSave += new Form2.Save(f_OnSave);//定阅这个事件 5 f.Show(); 6 } 7 8 void f_OnSave() 9 { 10 textBox1.Text = "New"; 11 //在这个方法里执行你要刷新的操作 12 }
2.子窗体代码
1 //定义委托 2 public delegate void Save(); 3 4 //定义事件 5 public event Save OnSave; 6 private void button1_Click(object sender, EventArgs e) 7 { 8 this.Close(); 9 OnSave();//关闭的时候执行事件 10 }
二.修改子窗体马上刷新父窗体数据
1.父窗体代码
#region 导入Excel数据 /// <summary> ///导入Excel数据 ///Author: ///WriteTime: 2014-11-17 /// </summary> protected override void ImportExcel() { try { FrmUploadFolder frm = new FrmUploadFolder("FrmUnit"); frm.Refurbish += new FrmUploadFolder.DisplayUpdate(Refurbish);//主要代码Refurbish是刷新的方法名 frm.ShowDialog();//主要代码 } catch (Exception ex) { Msg.InfoBox(ex.Message); } } #endregion #region 刷新 /// <summary> ///刷新表格数据信息 ///Author: ///WriteTime: 2014-01-22 23:49:38 /// </summary> protected override void Refurbish() {
dtDetails = bllClass.GetBySearch(_condition);//重新查询数据库
Utils.FillDataTableToDataGrid(this.dgvParent, dtDetails);//绑定数据到DataGridView控件
} #endregion
2.子窗体代码
#region 变量 /// <summary> /// 定义一个委托 /// </summary> public delegate void DisplayUpdate(); /// <summary> /// 定义一个事件,执行刷新 /// </summary> public virtual event DisplayUpdate Refurbish; #endregion
#region 保存 /// <summary> ///保存 /// </summary> protected override void Save() {
try {//更细新数据集 .......//保存操作if (this.Refurbish != null) { this.Refurbish(); } } catch (Exception ex) { Msg.InfoBox(ex.Message); } } #endregion
浙公网安备 33010602011771号