zoukankan      html  css  js  c++  java
  • Winform中如何实现父窗体传递数据到子窗体并刷新子窗体(转)

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

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

    一.窗体展示

    首先我们看到是一个父窗体和子窗体的合体,我们可以看到左边是一个[树控件]属于父窗体,右边的数据展示属于一个[用户控件],

    我们要进行的操作是当点击左边父窗体的树控件时,实现右边子窗体的数据变化

     

    二.代码展示

    首先是父窗体中的代码,我们需要定义一个带参数的委托

    1
    2
    3
    4
    5
    6
    7
    /// <summary>
    /// 绑定数据传递类编号代理
    /// </summary>
    /// <author>PengZhen</author>
    /// <time>2013-10-21 11:29:24</time>
    /// <param name="strClassId">类编号</param>
    public delegate void BindInfo(string strClassId);

      其次是子窗体的代码,我们需要定义一个绑定数据的方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /// <summary>
    /// 根据类编号获取信息并绑定到窗体
    /// </summary>
    /// <author>PengZhen</author>
    /// <time>2013-10-28 14:33:31</time>
    /// <param name="strClassId">类编号</param>
    public void BindControl(string strClassId)
    {
     
        //绑定操作

      

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

    只需要在父窗体中,当我们点击[树节点]时在相应的按钮事件中添加如下代码

    1
    2
    //实例化子窗体
    DataClassification dataDC = new DataClassification();

      

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /// <summary>
    /// 根据节点显示不同数据
    /// </summary>
    /// <author>PengZhen</author>
    /// <time>2013-10-29 9:54:29</time>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void tlDataType_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
    {
        if (tlDataType.FocusedNode != null)
        {
     
            //绑定代理
            BindInfo bindDLG = new BindInfo(dataDC.BindControl);
     
            //数据编号
            string strClassId = tlDataType.FocusedNode.GetDisplayText(1);
     
            //绑定窗体控件值
            bindDLG(strClassId);
        }
    }

      

    OK,写到这基本都完成了,有木有发现非常简单呢,
    以上代码可以结合下面链接中文章里面的操作就行联合运用
    Winform中如何实现子窗体刷新父窗体

    https://www.cnblogs.com/qufly/p/3433195.html

  • 相关阅读:
    mingW与cygwin
    Ruby on Rails 和 J2EE:两者能否共存?
    嵌入式Linux学习笔记(一) 启航、计划和内核模块初步体验
    嵌入式Linux学习笔记(六) 上位机QT界面实现和通讯实现
    嵌入式Linux问题总结(一) Ubuntu常用命令和编译问题解决方法
    嵌入式Linux学习笔记(五) 通讯协议制定和下位机代码实现
    嵌入式Linux学习笔记(四) 设备树和UART驱动开发
    嵌入式Linux学习笔记(三) 字符型设备驱动--LED的驱动开发
    嵌入式Linux学习笔记(二) 交叉编译环境和Linux系统编译、下载
    记录嵌入式面试的流程
  • 原文地址:https://www.cnblogs.com/xihong2014/p/14912802.html
Copyright © 2011-2022 走看看