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中如何实现子窗体刷新父窗体
Winform中如何实现父窗体传递数据到子窗体并刷新子窗体的更多相关文章
- WinForm 中两个窗口之间传递数据
方法有很多种,这里介绍项目中使用的两种 一.通过委托+事件的方法进行传值 (点击Form2中的button1按钮,将会把Form2中的textbox.text 传给Form1中的 lable.text ...
- vuejs子组件向父组件传递数据
子组件通过$emit方法向父组件发送数据,子组件在父组件的模板中,通过自定义事件接收到数据,并通过自定义函数操作数据 <!DOCTYPE html> <html lang=" ...
- Vue : props 使用细节(父组件传递数据给子组件)
props使用细节 在Vue.js中我们可以使用 props 实现父组件传递数据给子组件,下面我们总结一下props的使用细节 1.基础类型检查 2.必填数据 3.默认值 4.自定义验证函数 其中每一 ...
- vue子组件使用自定义事件向父组件传递数据
使用v-on绑定自定义事件可以让子组件向父组件传递数据,用到了this.$emit(‘自定义的事件名称’,传递给父组件的数据) <!DOCTYPE html> <html lang= ...
- Vue父子组件通信(父级向子级传递数据、子级向父级传递数据、Vue父子组件存储到data数据的访问)
Vue父子组件通信(父级向子级传递数据.子级向父级传递数据.Vue父子组件存储到data数据的访问) 一.父级向子级传递数据[Prop]: ● Prop:子组件在自身标签上,使用自定义的属性来接收外界 ...
- vue单文件组件形成父子(子父)组件之间通信(vue父组件传递数据给子组件,子组件传递数据给父组件)
看了很多文章,官网文档也有看,对父子组件通信说的不是很明白:决定自己总结一下: vue一般都使用构建工具构建项目:这样每个组件都是单文件组件:而网上很多文章都是script标签方式映入vue,组件通信 ...
- winform中dataGridView高度自适应填充完数据的高度
// winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度是根据数据的多少而变动. 在load的时候,数据绑定后,加上如下代码: ...
- React中的Context——从父组件传递数据
简介:在React中,数据可以以流的形式自上而下的传递,每当你使用一个组件的时候,你可以看到组件的props属性会自上而下的传递.但是,在某些情况下,我们不想通过父组件的props属性一级一级的往下传 ...
- vue 父向子组件传递数据,子组件向父组件传递数据方式
父组件向子组件传递数据通过props,子组件引入到父组件中,设置一个值等于父组件的数据,通过:bind将数据传到子组件中,子组件中通过props接收父组件的数据,这样就可以使用父组件的数据了,循环组件 ...
随机推荐
- javascript 函数返回值(return)、定时器(setTimeout、setInterval)
一.函数的返回值:return 1.函数名+括号=return后面的值 <script> function fn1(){ return 100; } alert(fn1()); // 10 ...
- C#处理JSON数据
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...
- 鼠标放上去,不同的cursor光标类型
<!DOCTYPE html><html lang="zh-cmn-Hans"><head><meta charset="utf ...
- css 去除标签默认样式
p,ul,ol,li,dl,dt,dd { list-style-type: none; margin: 0; padding: 0;}
- G面经prepare: Reorder String to make duplicates not consecutive
字符串重新排列,让里面不能有相同字母在一起.比如aaabbb非法的,要让它变成ababab.给一种即可 Greedy: 跟FB面经Prepare task Schedule II很像,记录每个char ...
- JS,CSS,HTML制作网页首页,视频轮播,隐藏点击等等。
在整个项目中,总共写了1000+的代码,可以更加简单优化的.整个主页交互效果能基本,包括轮播,视频,点击变化形状,移入蒙版,瀑布流加载滑动,旋转等等.轮播导航没有完全做完,暂时做了往右无限推动.个人觉 ...
- Java基础(31):String的大小写转换、分离成数组、==与equals()的区别(String类)
继续来看 String 类常用的方法,如下代码所示: 运行结果: 那么,“==” 和 equals() 有什么区别呢? ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 eq ...
- SQL中索引的原理
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引 ...
- extjs grid 单元格 多选
new Ext.grid.CellSelectionModel({ last : false, // 上一次选中的单元格 selections : [], // 选择区缓存 handleMouseDo ...
- android中的权限(转)
Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录了所有的Android权限问题,整理一下分享给大家. 访问登记属性 android.p ...