Winform中如何实现子窗体刷新父窗体

原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一.窗体展示

首先我们看到是一个父窗体,我们可以看到左边是一个[树控件],我们将点击[添加大类]和[添加字典]时调出子窗体

Winform中如何实现子窗体刷新父窗体

 

接下来是子窗体展示,当我们点击取消或者关闭按钮时,我们需要看到我们添加或者修改的数据能展示出来,这就是我们要做的事

Winform中如何实现子窗体刷新父窗体.

 

二.代码展示

首先是子窗体中的代码,我们需要定义一个委托和事件

1

2

3

4

5

//定义委托

public delegate void Refresh();

 

//定义事件

public event Refresh myRefresh;

  其次是父窗体的代码,我们需要定义一个刷新的方法

1

2

3

4

5

6

7

8

9

10

/// <summary>

/// 刷新控件信息

/// </summary>

/// <author>PengZhen</author>

/// <time>2013-10-25 14:46:21</time>

private void RefreshControl()

{

    //绑定树信息

    BindTree();

}

  

当上面两步完成之后,我们就要就行调用,进行刷新操作了

首先是父窗体中的代码,当我们点击[添加大类]或者[添加字典]时在相应的按钮事件中添加如下代码

1

2

3

4

5

6

7

8

//子窗体

 

ChildForm objCF= new ChildForm();

 

//定阅这个事件

objCF.myRefresh += new ChildForm.Refresh(RefreshControl);

//展示子窗体

objCF.ShowDialog();

  

其次是子窗体的代码,当我们点击[取消]或者[关闭窗体]时在相应的按钮事件中添加如下代码

取消:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

/// <summary>

/// 取消

/// </summary>

/// <author>PengZhen</author>

/// <time>2013-10-23 15:15:57</time>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btCancel_Click(object sender, EventArgs e)

{

 

    this.Close();

 

    //关闭的时候执行事件

    myRefresh();

}

   关闭事件

1

2

3

4

5

6

7

8

9

10

11

12

/// <summary>

/// 用户点击关闭窗体后执行操作

/// </summary>

/// <author>PengZhen</author>

/// <time>2013-10-25 15:00:45</time>

/// <param name="sender"></param>

/// <param name="e"></param>

private void DataDictionaryInfoFrm_FormClosed(object sender, FormClosedEventArgs e)

{

    //关闭的时候执行事件

    myRefresh();

}

  OK,写到这基本都完成了,有木有发现非常简单呢

 

转载:https://www.cnblogs.com/qufly/p/3433186.html