☆用心生活☆-wonder-{改变自己才能让自己过上不一样的日子。为自己加油!}

子窗体刷新父窗体使用接口模式

公告QQ群:124766907,若你是在.NET领域有独到见解,并有深厚的编程功力,在某一领域具有专长,欢迎本您入群,本群已经有好几位MVP,在SL,.NET,BS方面具有造诣的人欢迎进群。无4年以上经验者勿加,本群追寻高端顶级,多谢。

在网络中搜索了下,发现使用接口来刷新父窗体,自己认为比较方便。也比较好容易理解。所以我也特此写一片博客进行记录,对自己进行深入的学习和方便再回头来复习。很多东西都是自己以前做过的,但是很长一段时间之后不代表就能很顺心的能写出来,所以我只能用博客文章记录我的点滴,下次翻阅的时候至少我会想起来在某个项目中使用到了这个情景。

首先定义一个接口:

using System;
using System.Collections.Generic;
using System.Text;

namespace WinFormSendValue
{
public interface IForm
{
void RefreshForm();
}
}

当然为了能实现刷新,你首先得必须要在刷新的窗体中继承具有刷新功能的接口。。

   public partial class KuCunYiDongDetailsAddFrm : Form, IForm
    {

   ...................代码省略

   }

其次你的必须在此窗体中实现接口的方法

 

public void RefreshForm()
{
this.Refresh();
LoadBodyData(sendOrderNumber);
//刷新单身
LoadDetailsDate(sendOrderNumber);//明细刷新,即刷新dataGRIDVIEW
}

 

 

 

然后在你需要打开子窗体的事件中调用调用此方法。特别注意的是这里必须把需要打开的子窗体的Owner属性设置为本窗体(父)

private void btnBodyAddDetails_Click(object sender, EventArgs e)
{
singleAdd
= new SingleDetailsAddingFrm();
singleAdd.Owner
= this;//设置OWNER属性
RefreshForm();
//刷新父窗体
singleAdd.ShowDialog();
new SingleDetailsAddingFrm().ShowDialog();//转到库存异动单身明细添加窗体
}

最关键也是最后的一步就是必须在窗体中调用代码如下,不解释了。

   (this.Owner as IForm).RefreshForm();

这句可以放在你需要的任何地方。比如关闭事件中。

posted @ 2010-11-15 17:58  ☆用心生活☆  阅读(872)  评论(6编辑  收藏  举报
本作者写的任何文章均属原创,若要转载,请注明出处;若
进行与文章有关的商业行为,本作者保留拥有诉诸法律追究
侵权的任何行为。文章只代表本人某一学习时间段内对某一
技术的说明,不代表具有绝对的正确性,若要学习,请与各
位高手编程人员讨论学习。本文章也不代表自己某一时期某
一公司的任何专著和机密文件。仅仅提供自我学习和他人学
习的文章参考,以及自我知识记录。wanzegui325#163.com