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


    公告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();

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

  • 相关阅读:
    python3爬虫 -----新浪微博(m)-------评论爬取
    hdu 5585
    Atcoder 092
    python3糗事爬取-------------------糗事百科
    python3爬虫 -----爬取职位招聘信息-------from腾讯社会招聘
    python3电影详细信息爬取-------------------电影天堂
    Python词云分析
    合并排序
    活动安排问题
    你好,2019!
  • 原文地址:https://www.cnblogs.com/wanzegui325/p/RefreshParentForm_01.html
Copyright © 2020-2023  润新知