首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用委托实现winform多个窗体

最近用C#做上位机程序开发,要实现这样一个功能: 父窗体创建了两个子窗体——子窗体1和子窗体2,子窗体1产生的数据要在子窗体2中显示出来。...因为这两个子窗体本身之间并没有直接关联,他们都是由父窗体new出来的,所以就想着1的数据先发给父窗体,父窗体再发给2。这样结构上比较清晰,也符合松耦合的模式。...子窗体1发送消息给父窗体 在子窗体1中定义一个委托 public delegate void SendMsg(string msg); 再定义一个事件 public event SendMsg send...上面子窗体1已经注册好了委托和事件,接下来需要父窗体订阅该事件。...父窗体转发消息给子窗体2 这回等于是父窗体给子窗体发消息,所以我们在父窗体中定义委托和事件,然后让子窗体2去订阅,代码如下,我们先去掉关于窗体1的那部分以方便观察。

1.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

C# WINFORM通过委托和事件窗体(跨窗体(自定义事件参数)--实例详解

C# WINFORM通过委托和事件窗体(跨窗体(自定义事件参数)--实例详解 在C# WINFORM的日常开发中,我们通常需要遇到跨窗体这一问题,实现的方式也是有很多的,今天给大家分享一种通过委托和事件来实现的方式...不多说废话,我将用一个具体的实例来跟大家说明怎么样利用很委托和事件以及自定义的参数来实现跨窗体。...例如:程序中我们有一个主窗体,其中文本框的是我们需要从另外一个窗体中获取的 在这个表单窗体中,填写完整联系人地址信息后,我们希望把这些信息回传到主窗体中 好了,效果已展示,下面给大家放一下源代码。...WINFORM窗体通过委托和事件(自定义事件参数)的实现就结束了,如果你对本站分享的内容有更好的建议或意见,欢迎给我留言,希望我们共同学习,进步,谢谢。...最后,如果你对本实例程序源码感兴趣,可以点击这里下载 本文本同步发布至网享网[http://2sharings.com]:C# WINFORM窗体通过委托和事件(自定义事件参数)--实例详解

5.5K71

layui弹窗(layui弹出层)(窗口传)

主要有两部分 1、从主窗口传到弹出层 2、从弹出层到主窗口 3、通过session互传 4、通过调用父窗口的函数从而获取到父窗口的(相反也是可以的) 1、从主窗口传到弹出层 首先时js...changefileone函数时按钮绑定事件,按钮点击后调用这个函数然后弹出弹出层,加载changefile.html界面 然后success提前加载changefile的form数据(从主窗口传到弹出层...) //bootstraptable的修改,点击按钮的时候自动选中该行,因此可以获取到整行的 function changefileone() { var rowselect = $...那个的话是通过class名称来获取的 然后controller获取从js传来的数据的话,看我另外的博客 下拉框动态获取数据库数据 下拉框可以搜索 看我其他博客 3、通过session...父窗口的js: (1)(这个是获取bootstraptable的选定)menuTable是表格的id,这样返回的是jSON来的 function getrowselect() {

5.6K20

React Native 系列(五) -- 组件

任何一款 App 都有界面之间数据传递的这个步骤的,那么在RN中,组件是怎么的呢?这篇文章将介绍到顺、逆已经通过通知。...顺 其实我们在本系列第二篇文章中,讲述Props和State的时候就已经接触了顺。 通过props 举个?...但是有时候,我们并不是在创建 子组件 的时候就传递,而是需要等待某个触发事件的时候,再传递,这就涉及到获取子组件。 通过ref拿到组件,然后传 举个?...image.png image.png 逆 使用方法回调: 在父组件定义一个处理接收的方法 把这个方法传递给子组件,并且绑定this,子组件就能通过this.props拿到这个方法调用 举个例子,...好了,组件就讲到这里了。 致谢 如果发现有错误的地方,欢迎各位指出,谢谢!

1.5K100

Android Activity选择,Serializable Or Parcelable

逻辑封装,让其与Activity解耦,同时还可以有自己的生命周期,让我们控制布局绘制和进行资源回收,这些都是Fragment的好处,以后有机会再谈,今天,我们想讨论的是Activity页面之间跳转时,互相传的方法选择...Java中反序列化时通过SerialVersionUID来判断是否能够反序列化,所以需要序列化的类最好都能给出一个固定的SerialVersionUID,如下 ?...现在我们还是通过一个具体的实例来介绍这二种Activity的基本使用方法。假设,我们现在有一个商品Good的列表,Good类是这样的 ?...第一个需求很简单就搞定了,我们再来搞定第二个需求,Good的数组给详情Activity,如果使用Serializable的话,Intent没有提供putExtra直接传递Good数组的重载方法,所以我们需要做一个包装类

1.2K30

小程序实践(七):页面

一、URL  看下官方API文档: ?    官方提供了5种页面的跳转方式,其中前四种跳转的时候带有url参数,用于指定跳转的页面地址,而其中前三种url中可以带有参数。   ...以此来实现页面跳转时候的参数。  1、页面基本数据格式的方式     将参数添加到url部分     以  ?...属性名=属性 的形式添加 , 多个参数用&连接  示例:     跳转前页面代码: ? 跳转后页面代码: ?     控制台信息: ?...2、页面传对象的方式      测试将对象作为参数传递的话,接受页面时接收不到的。      解决办法就是先将对象转为Json字符串,接受页面接收到字符串之后再转为对象即可。      ...二、全局APP对象传 这个就很好理解了,就是有一个全局的对象,获得方式就是getApp    可以在任何页面使用,所以在要在也面前赋值,接受页面读取即可    赋值: ?

1.1K10

vuejs中的组件以及父子组件通信

(父子组件非父子组件关系图) 没有代码的实际演示,是理解不了上图他们之间怎么通信的,组件之间的通信是一块硬骨头,逻辑比较绕,远比函数参复杂得多,为来更好的理解父子组件,下面以一个todolist...父组件怎么向子组件? 子组件怎么向父组件通信? ?...(父子组件通信) 你将在以下看到,我先不使用组件方式实现todolist,然后转化为组件的方式进行编写,添加内容实现父组件给子组件,删除列表项,子组件怎么触发父组件进行通信,感受数据驱动影响视图...(父组件向子组件,自定义属性,子组件通过props进行接收) 上面示例代码中,实现父组件向子组件添加操作,那么现在我想点击每个列表项的时候,能进行逐条删除操作,该怎么实现呢,这就涉及到子组件向父组件的问题了...(子组件通过$emit向父组件触发自定义事件) 小结: 到这里的话,父组件和子组件之间的简单传就已经结束了,在写vue代码的时候,不要直接去操作dom,而是通过数据的改变让页面自动变化,父组件向子组件

20.4K10

C语言函数调用详解】——调用&址调用

一.调用 什么是调用呢?顾名思义,调用就是直接将实参的传递给形参。...这样形参和实参的是一样的,但是函数的形参和实参分别占有不同的内存块,实参是一个独立的个体,形参也是一个独立的个体,只是形参的与实参相同。..., num2); printf("Swap1::num1 = %d num2 = %d\n", num1, num2); return 0; } 我们来简单分析一下这段代码: 根据我们的分析,调用好像不能达到交换...num1,num2的目的,我们看看结果是什么样的: 因此,调用,要想在函数内部交换两个变量的,是不可行的。...以上就是对函数调用的两种方式,调用和址调用的介绍,欢迎大家指正,我们一起进步!!!

17710

址与

这里将讲述址与的区别,先见下图。 这是的过程,我们明明把a,b作为实参传过去了。可以看到,交换后的a,b并没有达到我们的预期。为什么会这样呢?...其实是因为,的时候,形参是临时创建的,在执行完swap函数后,他们又自动销毁了,从而导致a,b的并没有交换。如果想要改变实参的,我们就需要进行址,而不是。...见下图 我们通过把a和b的地址传给了形参,形参就能通过地址,找到a,b,以此来改变a和b的。此时我们的实参就改为&a和&b,注意swap函数的形参类型是int*,这样就能交换a与b的啦。...总结::形参是实参的一份拷贝,函数运行起来后,实参是实参,形参和实参没有任何关联,改变形参时,不会对实参造成影响。            ...址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此,对形参解引用后的内容进行修改,改变的就是实参。

8810

往期文章 【JS ES6】const var let 一文搞懂声明关键字所有的知识点 目录 什么是  例  址 什么是址 例  ---- 什么是 let a = 1; let...b = a; console.log(a, b); //1 1 是获取一份儿相同的,并自身重新开一份儿属于自己的内存地址,两个变量是互相独立的并不会互相影响。  ...例  let a = 1; let b = a; b = 2; console.log(a); console.log(b); 修改了b的,a的不会受到影响,这就是,两者是独立的存在,引用内存比较小的引用赋值一般都是...址 什么是址 let a = { name: "xiaoxie", }; let b = a; console.log(a, b); 是获取一份儿相同的,不会自身重新开一份儿属于自己的内存地址...两者使用同一个内存地址,一般引用占用内存较大的变量时,会址,比如对象和数组。

2.6K20

地址

很多语言在参的时候都有一个地址(或者是引用)的问题,我想用 C++ 语言来简单的描述一下。...因为我觉得无论是还是址,C 或者 C++ 这两种语言都是能够比较直观的描述清楚的语言,原因是可以容易的去观察内存。其他语言也可能可以,只是其他语言的我不太知道如何去做。...从图中可以看到,a 的地址是 0x0019fe18,b 的地址是 0x19fe1c。 注意看上面两张图,两个地址下面都是保存的实际的。...对于第一段和第二段代码在 C++ 中称为,对于第三段和第四段代码在 C++ 中称为地址。地址和在内存中本身都是一个,只是具体分类是做了区别而已。...NO.6 Java 参 Java 中说的参全部是,但是当形参是一个对象的时候,其实相当于的是一个地址。因为变量中本身就保存的是一个地址,而不是一个

2.3K40
领券