Winform中如何实现父窗体传递数据到子窗体并刷新子窗体

来源:互联网 发布:windows 开发语言 编辑:程序博客网 时间:2024/05/09 23:33

Winform中如何实现父窗体传递数据到子窗体并刷新子窗体

 

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

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

一.窗体展示

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

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

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

二.代码展示

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

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

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

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

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

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

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

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

        //实例化子窗体        DataClassification dataDC = new DataClassification();
 
        /// <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中如何实现子窗体刷新父窗体

 

 

 

 

原创粉丝点击