转:c#委托事件实现窗体传值
效果图下如下:开始启动的是窗口1,打开窗口2后,在窗口1中textBox1开始输入,窗1中的内容同时显示在窗2 textBox1中。
要想在窗口2中显示窗1的信息,首先,要建立一个刷新窗2中textBox1的方法,如下:
public void updatetxt(string txt){this.textBox1.Text = txt;}
有了方法后,就要考虑第二个问题,如何把窗1传中的东西传过来,靠什么传?
这就要建卡一个事件,靠事件来生成要传送的数据,然后通过委托来传递到窗2,所以要建卡一个委托,这个委托带个参数,参数值就是窗1中
textBox1的值
public delegate void updatertxts(string s);public event updatertxts udtxt;
建立后事件后,最后一件事就是要注册事件并且订阅消息(我也是半懂,仅为自我理解需要)
//注册事件 private void textBox1_TextChanged(object sender, EventArgs e){try{udtxt(((TextBox)sender).Text);//不一定需要这个,直接取值即可}catch (SystemException err){MessageBox.Show(err.Message);}}
事件激发后,就差最后一步了,就是把这个“信”给送到窗2中,在哪里地方传出去。
考虑到窗1与窗2的联系方式有一个,就是在窗1中打开窗2,那就在这里“报信”吧,
private void button1_Click(object sender, EventArgs e){Form2 form2 = new Form2(); udtxt += new updatertxts(form2.updatetxt);form2.Show();}
运行程序,就能实现上面的效果啦。
不过这里也有个问题,如果没有打开窗2,直接在窗1中(第一次中,如果窗口2打开后关闭又不会报错)输入内容,就会出现未将对你引用到实例的错误,求解中。
if (udtxt != null)//这样写就好了udtxt(((TextBox)sender).Text);
转载于:https://www.cnblogs.com/bantongshui/p/3192340.html
转:c#委托事件实现窗体传值相关推荐
- 转:c#委托事件实现窗体传值通信
C#实现Winform窗口间数据交互的三种方法介绍 2010-03-15 来自:CNBLOG 字体大小:[大 中 小] 摘要:本文分别介绍C#实现Winform窗口间数据交互的三种方法:修改子窗体 ...
- C# 利用委托事件进行窗体间的传值
引言: 窗体间传值是每个学习WinForm新手的常见问题,最初级的方法就是 在窗体中先获取到要接受值窗体.然后通过.得到某个空间或者属性,直接赋值,这个需要接收放的窗体属性或者空间必须是public ...
- C#中委托与事件的使用-以Winform中跨窗体传值为例
场景 委托(Delegate) 委托是对存有某个方法的引用的一种引用类型变量. 委托特别用于实现事件和回调方法. 声明委托 public delegate int MyDelegate (string ...
- 委托事件实现更新窗体
委托 和 事件在 .Net Framework中的应用非常广泛. 委托( Delegate ):是一种定义方法签名(只有方法的名字,没有方法体),可以与具有兼容的签名的任何方法关联.所谓兼容的方法,是 ...
- 使用委托(事件)或中介设计模式实现多个Windows窗体文本框的同步
需求 主窗体的文本框内容发生改变的时候,多个子窗体的文本框也发生改变. 中介设计模式 实现 当主窗体的文本框内容发生改变的时候,通过接口向所有实现这个接口的窗体发送一条消息(执行接口中的方法),从而实 ...
- Observer设计模式中-委托事件-应用在消息在窗体上显示
Observer设计模式:监视者模式.在类中的方法中处理的结果或者消息通过事件委托 的方式发送给主窗体. 因为在其它类中直接访问主窗体类,显示内容是不能直接调用控件赋值的,当然也有别的类似查阅控件名, ...
- C#跨窗体传值的几种方法分析第三版
窗体传值是在学习窗体应用程序时碰到的一类比较常见的问题,现将窗体传值方法做了一点总结,方法如下: <1>声明全局变量传值: 在Form1中声明全局变量,如下所示: 1 public sta ...
- 老题新理解-在话winform之间的窗体传值
也许当你看到标题的时候,你会想,这窗体间传值方法就这么多,无非就是那几种: 1.静态变量(这个最简单) 非时性的传递: 1.窗体的属性 2.构造函数 时时性的传递: 1.委托 2.静态变量(这个最简单 ...
- WinForm开发,窗体显示和窗体传值相关知识总结
以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示显示窗体可以有以下2种方法: Form.ShowDialo ...
最新文章
- mysql监控内存cpu使用率_监控 cpu 内存 网卡的使用情况的一个命令 比较实用
- 当一个解决方案下面有多个项目时,如果设置启动项?
- 11、计算机图形学——几何(贝塞尔曲线与曲面)
- ICLR 2022入选论文线上分享预告:一作解读,不容错过
- Meteor创建示例项目 Simple-todos
- Servlet3.0注解配置访问路径和urlParttern配置
- 快速卷积与快速相关——MATLAB
- UIColor设置自定义的颜色不成功问题
- GVRP、VCMP、VTP、DTP——全网最完整的总结
- UVA11577 Letter Frequency【文本】
- 疫情下,嵌入式er该怎么进行职业规划,难点在哪?
- css实现div半透明而文字不透明
- 三阶魔方中心块调整公式及助记方法
- 计算机导论的答案,计算机导论答案
- HDU- 1151 Air Raid(最小路径覆盖)
- 自学备考教师资格证笔试的方法
- 机器学习系列之交叉验证、网格搜索
- Java_JDK19.0.2_Ubuntu18.04中配合海康工业相机SDK环境搭建
- TCP/IP之大明邮差
- 微前端 micro-app 源码研究-提前准备
热门文章
- linux系统reboot怎么退出,Linux系统肿么退出?
- 韶音耳机连不上电脑_骨传导耳机哪个牌子好,骨传导耳机推荐
- oracle误删表空间 无法关闭,oracle 误删表空间文件启动不了数据库的解决办法
- python深浅拷贝 面试_python基础-深浅拷贝
- 堆栈的栈顶和栈底在哪_【c# .net】堆栈(Stack)
- linux java tar_tar包在linux下java安装
- C#中创建DLL(动态链接库)及其使用
- HALCON标定助手使用实例
- deepin更新失败_检查更新失败
- python在列表末尾删除一个_从链接列表的尾部移除(Python)