C#对象间的协作和信息交换(二)主窗体向从窗体传递消息

在C#中用户控件与窗体间的消息传递 如果在C#中实现用户定义控件内的事件挂勾到调用的窗体事件中           我们都知道在ASP.net开发中,如果使用用户定义控件可以有效的进行程序的模块化。其实在.net  的WinForm中也是可以使用的。细节如下:1、新建应用程序WindowsApplication1。2、添加新的用户控件UserLogin。(如图User)3、定义用户属性      //定义属性  public str 阅读详情

对象间信息交换

  对象间信息协作和交换分为以下几种场景:主窗体向从窗体传递消息、从窗体向主窗体传递消息、主窗体向多个子窗体广播消息、利用委托(Delegate)广播消息和利用事件(Event)广播消息。
  文中所列代码只讲关键步骤,如有需要的朋友可直接到我的优快云资源下载面下载下载地址。
  下面一一分别介绍。

主窗体向从窗体传递消息

  主窗体向从窗体传递消息有两种方法,一种是从窗体使用公有属性接收消息;另一种是从窗体使用公有方法接收消息。这两种方法很相似,所以不分开讲。
  最终的效果图如下,在主窗体中输入消息并点击“Send”按钮,消息发送到从窗体中。
  最终的效果图
  下面看下编程实现,代码项目:MainToOther。

  1. 主窗体Load时创建一个从窗体对象

    private frmOther otherForm;
    
    private void frmMain_Load(object sender, EventArgs e)
    {
        otherForm = new frmOther();
        otherForm.Show();
    }
  2. 为Send按钮的Click事件增加函数

    private void btnSend_Click(object sender, EventArgs e)
            {
                SendMessageViaPublicProperty();//使用从窗口公共属性的方法。
                //SendMessageViaPublicMethod();//使用从窗口公共函数的方法。
            }
  3. 从窗体公有属性和公有方法的实现
    如何使用公有属性,那么主窗体中调用SendMessageViaPublicProperty()函数

    public void SendMessageViaPublicProperty()
        {
            string inputText = txtInput.Text.Trim();
    
            otherForm.Info = inputText;//info是从窗体的公有属性
        }

    如果使用公共函数,那么主窗体中调用SendMessageViaPublicMethod()函数

    public void SendMessageViaPublicMethod()
        {
            string inputText = txtInput.Text.Trim();
    
            otherForm.ReceiveMessage(inputText);//调用从窗体的公有方法
        }
  4. 从窗体

    //使用公有属性接收信息
        public string Info
        {
            set
            {
                labReceive.Text = value;
            }
        }
    
        //使用公有方法接收信息
        public void ReceiveMessage(string Message)
        {
            labReceive.Text = Message;
        }
C# Winform开发者的3个致命误区 vs 5个实战技巧:SendMessage实现跨窗体通信的终极指南 / 处理逻辑。 阅读详情

相关推荐

Windows Mobile开发中的Native C++与.NET Compact Framework技术选型实战

在嵌入式移动开发中,Native C++与.NET Compact Framework代表了底层控制力与开发效率的两种典型范式。其核心差异源于操作系统抽象层级:Native C++直面CE内核、内存映射与硬件中断,提供确定性实时响应;而.NET CF通过托管运行时封装资源管理,在受限内存(如128MB RAM)和低功耗CPU下以可预测的GC行为换取快速交付。这种‘抽象税’的量化权衡——包括启动延迟、内存碎片、P/Invoke开销及跨层互操作风险——构成了IoT边缘设备、车载系统乃至现代轻量级框架选型的关键决

clugcpne10995的博客 443

C#对象间的协作和信息交换(一)前言

前言  任何一门编程语言的语法都是可以很容易掌握的,其无非就是包含语言对应的基本数据类型、流程控制(顺序、选择和循环)、字符串处理等,花一两周时间就能学会的。但是对于新手来说,当你学完基本语法时,马上去编程的时候你却无从入手,因为很多书本上没有提及的东西你还没有掌握,这些东西只能是从实践中慢慢积累,但这需要花费太长的时间。   C#其基本语法都是很简单的,最多两周就可以掌握了,但是在进行WinFo

终身学习的程序猿 1132

基于C# WinForm与WebView2打造个性化桌面浏览器:从零到一实战指南

在现代桌面应用开发中,将Web内容嵌入原生程序已成为提升开发效率和用户体验的重要技术路径。其核心原理在于通过浏览器内核渲染引擎,在应用窗体中无缝加载和交互网页内容,实现Web技术的强大表现力与桌面应用原生能力的结合。这一技术为开发者带来了显著价值:既能利用丰富的Web生态快速构建功能模块,又能通过原生代码深度控制系统资源与交互逻辑。典型的应用场景包括企业内部管理系统、数据监控仪表盘、信息聚合客户端以及需要定制化界面的专用工具。本文聚焦于使用C# WinForm框架与微软官方的WebView2控件,详细讲解如

weixin_34163553的博客 348

C#窗体之间传递消息和事件

C# WinForm编程中,你是否遇到过这样的问题,在主窗口Form1中点击按钮,弹出一个子窗口Form2,你希望在Form2中调用Form1的函数,改变Form1的显示,却发现Form1不听话,达不到预期效果。有的人说我调试了的,那段函数确实执行了,怎么还是没有显示呢? 案例: 在winform中,我在点击from1的一个按钮,弹出from3执行一个函数,其实form

hemeinvyiqiluoben的专栏 1万+

C# WinForm部署YOLOv8手势识别模型:从训练到桌面应用全链路实践

目标检测是计算机视觉的核心任务之一,旨在识别图像或视频中特定目标的位置和类别。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并预测目标的边界框和类别概率。这项技术的价值在于能将AI视觉能力高效集成到各类应用中,实现自动化识别与交互。在工业检测、智能安防、人机交互等场景中,目标检测模型需要被部署到生产环境才能发挥实际作用。模型部署的关键挑战在于打通从训练框架到生产环境的链路,其中ONNX(Open Neural Network Exchange)格式作为开放的模型交换标准,扮演了至关重要的桥梁角色。它

weixin_42662605的博客 328

工业上位机开发实战:C#实现自动化设备监控与控制系统

在工业自动化领域,上位机软件作为连接操作人员与底层PLC、传感器等硬件的核心枢纽,承担着数据采集、流程控制与状态监控的关键任务。其工作原理通常基于分层架构,通过设备通信层实现多协议解析,并运用多线程技术确保实时数据交互与界面流畅。这种设计模式的技术价值在于将复杂的工业逻辑模块化,显著提升了系统的可维护性、可扩展性与稳定性,是构建可靠工业软件的基础。在锂电池生产、精密组装等典型应用场景中,上位机软件需要精准管理配方流程并处理高并发数据。本文以一套成熟的二次注液机上位机源码为例,深入剖析了其基于C#的分层架构设

weixin_29267307的博客 301

C# 通过子窗体刷新父窗体:窗体控制

在一些软件,比如,进销存管理系统中添加销售单信息时,每个销售单都可能对应多种商品,而且在向销售单中添加商品时,一般都是在新弹出的窗体中选择商品,这时就涉及通过子窗体刷新父窗体的问题。

wenchm的博客 2115

基于DevExpress与C#的工业级固定式扫码系统架构与实现

在工业自动化和仓储物流领域,固定式扫码系统是实现高效、准确数据采集的核心技术。其原理是通过部署在产线或传送带上的固定扫码设备(如工业相机或扫码枪),自动识别移动物品上的条码,替代传统低效的人工手持扫描。该技术的核心价值在于提升作业效率、降低人工错误,并实现生产数据的实时采集与追溯,广泛应用于WMS、MES等系统集成。本文聚焦于一个基于C# WinForms与DevExpress v23.1控件库构建的工业级扫码系统,深入剖析其插件化设备驱动、多线程任务调度以及高实时性UI数据绑定等关键技术,为开发者提供一套

weixin_29758911的博客 345

C#窗体间信息的双向传送(一)引用方式

C#窗体间信息的双向传送(一)引用方式 要实现主从窗体对象信息的相互传送,这两个对象间必须建立一个双向的关联,即每个都拥有对方的引用。具体来说,就是主窗体拥有一个私有字段引用从窗体,从窗体也有一个私有字段引用主窗体。     1.主窗口->从窗口:主窗体用一个私有字段保存对从窗体对象的引用,调用从窗体的公有方法(或者对从窗体公有属性赋值),可以将特定信息从主窗体传给从窗体。主窗体fr...

Devin的博客 940

net和C#中两个exe消息通讯

两个exe消息通讯,WinForm之间消息通讯。

C# 窗体传值(子窗体向主窗体传值)

C# 窗体传值(子窗体向主窗体传值) //声明一个委托 public delegate void DisplayUpdateDelegate(string str); //声明事件 public event DisplayUpdateDelegate ShowUpdate;

C#对象间的协作和信息交换(三)从窗体向主窗体传递消息

从窗体向主窗体传递消息分两种:一种是主窗体主动等待从窗体过来的消息并处理,比如添加账号,添加完账号后要关闭当前窗体,主窗体检查从窗体的关闭状态进而做处理;另种是从窗体主动向主窗体“汇报情况”,主窗体是一种被动接收状态,这种情况下会涉及到两种极为重要的编程技巧:对象注入和“回调”的使用。主窗体主动等待  主窗体主动等待也可以使用公有属性和公有方法两种方法。

终身学习的程序猿 2189

ARM学习 | 紧耦合存储器 (TCM)

TCM 是一种专用的片上存储器,直接与处理器核心耦合。确定性访问:由于不涉及缓存替换或一致性管理,访问延迟固定。高带宽:TCM 通常通过专用总线连接处理器核心,可以提供更高的数据吞吐率。用户管理:TCM 的分配和管理完全由开发者控制,不依赖硬件缓存策略。ARM 处理器中的 TCM 通常分为ITCM(指令紧耦合存储器)和DTCM(数据紧耦合存储器),分别用于存储指令和数据。TCM 是 ARM 处理器中不可忽视的重要特性,在实时系统和高性能嵌入式应用中具有重要地位。

qq_43167806的博客 3329

两个窗体间实时传递数据

相信大家在做系统的时候,很多人都遇到需要在两个不同的窗体间传递数据的情况,例如可以单独打开一个窗口,用于显示代码名称对照关系,通过双击该窗体的数据,我们希望这个数据传递到另一个窗体中。如何实现两个窗体间数据的实时传递呢?其实很简单,只需要简单地运用事件通知就可以了。首先做如下假设:有两个窗体MainForm,SubForm,我们希望SubForm向MainForm实施传递数据,开发语言就用

liangsanpi的专栏 1953

历史预测+LLM双杀!DriveGPT4-V2闭环驾驶配置避坑指南

本文深入探讨了DriveGPT4-V2在工程化部署中的核心挑战与解决方案。通过融合历史轨迹预测与大语言模型,该模型旨在实现更可靠的端到端自动驾驶。文章详细解析了从环境配置、多模态Token对齐、轻量控制头设计到训练优化与闭环仿真验证的全流程,为开发者提供了一份详实的避坑指南。

transformer2023的博客 384

飞塔防火墙CVE-2022-40684漏洞复现:手把手教你搭建靶场环境(附调试技巧)

本文详细指导如何搭建Fortinet飞塔防火墙CVE-2022-40684认证绕过漏洞的靶场环境,涵盖虚拟机部署、网络配置、调试模式开启及漏洞原理分析。通过手把手教程,读者可掌握漏洞复现与深度调试技巧,深入理解该认证绕过漏洞的利用与防御。

h6i7j8的博客 695

Visual Studio 中两个窗体(WinForm)之间相互传值的方法

编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain 1. FormMain和FormInfo 点击“修改...”按钮,显示FormInfo 2. 设置FormInfo中buttonOK和buttonC

ROCKY的专栏 1万+

iOS 取证窍门:为什么要先从 Recovery 恢复模式开始?

未记录的 DFU 代表“设备固件升级”。与专为普通用户设计的恢复模式不同,DFU 模式从来都不是为公众设计的。Apple 知识库中的任何地方都没有关于 DFU 的文档。进入 DFU 的方法主要是通过按下、按住和释放按钮的复杂操作序列,并具有精确的时间限制。在多个步骤中的任何一个步骤中,如果时间错误,都会导致重新启动设备,而不是将其切换到 DFU。另外,设备屏幕上也没有 DFU 模式的指示。如果设备成功切换到 DFU,显示屏将保持黑色。即使对于专家来说,进入 DFU 模式也可能很困难。恢复模式是最容易解释的。

2302_82041293的博客 1198

JAVA 仿QQ聊天程序(附源码)

第一次通过java编写完了一个模拟QQ的C/S软件【开心,但是还是感觉用C#写C/S要舒服的多【哭泣】】,项目是通过三层架构编写,由于对JavaJDBC不是很熟悉,所有数据交换写的是真的垃圾啊,软件还是存在一些问题的,比如文件传输,由于没有采用线程,软件打开一次只能传输一次,还有就是要先发送端点击发送后才能,点击接受不然接受不到数据…软件还是挺不错【自夸一下狗头】,其他的问题就不说了,自己去看源码吧… 一:软件部署 软件部署在实训文档最后面有讲解 相关功能的介绍在实训文档里都有解释 二:软件效.

孤夜的博客 1万+

从Chimera到ChimeraX:科研绘图升级指南,让你的论文配图更专业

本文详细介绍了从UCSF Chimera升级到ChimeraX的科研绘图指南,帮助研究者提升论文配图质量。ChimeraX在渲染引擎、大分子处理能力和动画功能上具有显著优势,特别适合生命科学和结构生物学领域。文章涵盖材质设置、专业配色、工作流程和期刊适配等核心技巧,助力产出出版级分子可视化图像。

weixin_33670786的博客 934

避开期货指标常见坑:文华财经赢顺DK多空指标优化配置指南(附参数调试技巧)

本文详细解析了文华财经赢顺DK多空指标的优化配置方法,帮助交易者避开常见使用误区。通过参数个性化适配、动态调整趋势阈值和过滤假信号的三重验证,提升指标在期货交易中的准确性。附有参数调试技巧和不同市况下的配置建议,适合中高级交易者参考。

weixin_29063979的博客 434

C#开发Windows CE/98应用:兼容性挑战与跨平台实践

在工业控制、嵌入式设备等特定领域,大量基于Windows CE和Windows 98的“长寿”系统仍在服役,其维护与有限升级成为现实需求。这要求开发者深入理解.NET Compact Framework与早期.NET Framework的兼容性原理,掌握面向最低公共标准的开发策略。通过采用C# 1.0/1.2语法、使用ArrayList等非泛型集合、设计平台无关的数据层,可以在资源受限环境下构建稳定应用。这种技术实践不仅解决了特定场景下的开发断层问题,也为理解C#语言演进和跨平台兼容性提供了宝贵案例。本文以

weixin_34268310的博客 446

游戏大厂如何解析引擎技术

本文系统解析了游戏大厂如何评估和定制游戏引擎。游戏引擎作为游戏开发的核心基础,大厂会从性能、跨平台支持、渲染能力、网络模块等8个维度进行技术解析,通过文档查勘、源码阅读、Demo测试等7个步骤深度评估。解析后通常有三种决策:直接使用、深度定制或自研重构。文章以腾讯、网易、米哈游等为例,展示了不同厂商的引擎定制策略,并分析了技术解析面临的挑战和未来趋势。最终指出,体系化的引擎技术解析是打造高质量游戏的关键,需要持续的技术投入和团队协作。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 535

c#利用委托实现主从窗体之间的信息交互

liuyang137的博客 322

IEC 61850标准协议解读 3.MMS服务

摘要:本文系统介绍了MMS(制造报文规范)的基础知识及其在IEC61850中的应用。首先解析MMS的核心定义、通信流程(带确认/不带确认服务)、虚拟制造设备(VMD)概念及核心对象(域/有名变量等)。重点阐述IEC61850与MMS的映射关系,包括对象分层映射、服务转换规则及数据类型对应。深入分析ASN.1编解码机制,说明MMS PDU的分层结构与解码流程。最后通过典型报文案例(报告服务、控制服务、文件传输等)和通信初始化流程,展示MMS在智能变电站中的实际应用。全文揭示了MMS作为抽象应用层协议如何通过标

张二狗的博客 727

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# 主从窗口之间互发消息

程序类型 1、语言:C# 2、框架:.NET Framework 3、类型:Window窗体应用 程序说明 1、主窗口设置或者读取子窗口数据时,通过调用子窗口实例的方法实现的。 2、子窗口设置或者读取主窗口数据时,通过将主窗口的方法传递给子窗口实例的委托实现的。 程序代码 ##MainForm代码 using System; using System.Collections.Generic; us...

三皮仔 544

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: C#对象间的协作和信息交换(一)前言
下一篇: C#对象间的协作和信息交换(三)从窗体向主窗体传递消息
sweird
博客等级 码龄20年 336粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值