效果图下如下:开始启动的是窗口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#委托事件实现窗体传值相关推荐

  1. 转:c#委托事件实现窗体传值通信

    C#实现Winform窗口间数据交互的三种方法介绍 2010-03-15  来自:CNBLOG  字体大小:[大 中 小] 摘要:本文分别介绍C#实现Winform窗口间数据交互的三种方法:修改子窗体 ...

  2. C# 利用委托事件进行窗体间的传值

    引言: 窗体间传值是每个学习WinForm新手的常见问题,最初级的方法就是 在窗体中先获取到要接受值窗体.然后通过.得到某个空间或者属性,直接赋值,这个需要接收放的窗体属性或者空间必须是public ...

  3. C#中委托与事件的使用-以Winform中跨窗体传值为例

    场景 委托(Delegate) 委托是对存有某个方法的引用的一种引用类型变量. 委托特别用于实现事件和回调方法. 声明委托 public delegate int MyDelegate (string ...

  4. 委托事件实现更新窗体

    委托 和 事件在 .Net Framework中的应用非常广泛. 委托( Delegate ):是一种定义方法签名(只有方法的名字,没有方法体),可以与具有兼容的签名的任何方法关联.所谓兼容的方法,是 ...

  5. 使用委托(事件)或中介设计模式实现多个Windows窗体文本框的同步

    需求 主窗体的文本框内容发生改变的时候,多个子窗体的文本框也发生改变. 中介设计模式 实现 当主窗体的文本框内容发生改变的时候,通过接口向所有实现这个接口的窗体发送一条消息(执行接口中的方法),从而实 ...

  6. Observer设计模式中-委托事件-应用在消息在窗体上显示

    Observer设计模式:监视者模式.在类中的方法中处理的结果或者消息通过事件委托 的方式发送给主窗体. 因为在其它类中直接访问主窗体类,显示内容是不能直接调用控件赋值的,当然也有别的类似查阅控件名, ...

  7. C#跨窗体传值的几种方法分析第三版

    窗体传值是在学习窗体应用程序时碰到的一类比较常见的问题,现将窗体传值方法做了一点总结,方法如下: <1>声明全局变量传值: 在Form1中声明全局变量,如下所示: 1 public sta ...

  8. 老题新理解-在话winform之间的窗体传值

    也许当你看到标题的时候,你会想,这窗体间传值方法就这么多,无非就是那几种: 1.静态变量(这个最简单) 非时性的传递: 1.窗体的属性 2.构造函数 时时性的传递: 1.委托 2.静态变量(这个最简单 ...

  9. WinForm开发,窗体显示和窗体传值相关知识总结

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示显示窗体可以有以下2种方法: Form.ShowDialo ...

最新文章

  1. mysql监控内存cpu使用率_监控 cpu 内存 网卡的使用情况的一个命令 比较实用
  2. 当一个解决方案下面有多个项目时,如果设置启动项?
  3. 11、计算机图形学——几何(贝塞尔曲线与曲面)
  4. ICLR 2022入选论文线上分享预告:一作解读,不容错过
  5. Meteor创建示例项目 Simple-todos
  6. Servlet3.0注解配置访问路径和urlParttern配置
  7. 快速卷积与快速相关——MATLAB
  8. UIColor设置自定义的颜色不成功问题
  9. GVRP、VCMP、VTP、DTP——全网最完整的总结
  10. UVA11577 Letter Frequency【文本】
  11. 疫情下,嵌入式er该怎么进行职业规划,难点在哪?
  12. css实现div半透明而文字不透明
  13. 三阶魔方中心块调整公式及助记方法
  14. 计算机导论的答案,计算机导论答案
  15. HDU- 1151 Air Raid(最小路径覆盖)
  16. 自学备考教师资格证笔试的方法
  17. 机器学习系列之交叉验证、网格搜索
  18. Java_JDK19.0.2_Ubuntu18.04中配合海康工业相机SDK环境搭建
  19. TCP/IP之大明邮差
  20. 微前端 micro-app 源码研究-提前准备

热门文章

  1. linux系统reboot怎么退出,Linux系统肿么退出?
  2. 韶音耳机连不上电脑_骨传导耳机哪个牌子好,骨传导耳机推荐
  3. oracle误删表空间 无法关闭,oracle 误删表空间文件启动不了数据库的解决办法
  4. python深浅拷贝 面试_python基础-深浅拷贝
  5. 堆栈的栈顶和栈底在哪_【c# .net】堆栈(Stack)
  6. linux java tar_tar包在linux下java安装
  7. C#中创建DLL(动态链接库)及其使用
  8. HALCON标定助手使用实例
  9. deepin更新失败_检查更新失败
  10. python在列表末尾删除一个_从链接列表的尾部移除(Python)