主窗体给两个父窗体传值,子窗体和子窗体间传值,Action搞定,比较简单的demo


在Windows应用程序开发中,尤其是使用.NET Framework的C#或Visual Basic .NET时,窗口之间的数据传递是一个常见的需求。本文将详细讲解如何通过Action实现主窗体与子窗体以及子窗体之间的值传递。 让我们理解“Action”在.NET中的含义。Action是System.Action委托类型,它代表一个不返回任何值的方法。我们可以使用Action来传递参数,并在需要的时候执行这个方法。在窗口之间传递数据时,Action可以作为一个中介,帮助我们将数据从一个窗口传递到另一个窗口。 **一、主窗体给两个子窗体传值** 1. **创建委托和事件:** 在主窗体中定义一个Action委托,用于传递数据,同时创建一个事件,当需要传递数据时触发该事件。 ```csharp public delegate void PassValueAction(object sender, string value); public event PassValueAction PassValueToChild; ``` 2. **触发事件并传递值:** 当需要向子窗体传递值时,触发事件并附带要传递的值。 ```csharp private void Button_Click(object sender, EventArgs e) { string valueToPass = "这是要传递的值"; PassValueToChild?.Invoke(this, valueToPass); } ``` 3. **订阅事件:** 子窗体需要接收值时,在其构造函数中订阅主窗体的事件。 ```csharp public ChildForm1(MainForm mainForm) { InitializeComponent(); mainForm.PassValueToChild += MainForm_PassValue; } private void MainForm_PassValue(object sender, string value) { // 在这里处理接收到的值 MessageBox.Show("从主窗体接收到的值:" + value); } ``` 同样地,为第二个子窗体重复上述步骤。 **二、子窗体传值给另一个子窗体** 子窗体之间传值的过程与上述类似,但不需要依赖主窗体。可以直接定义一个内部的Action或者使用事件进行通信。 1. **定义内部Action:** 在子窗体中定义一个内部的Action委托。 ```csharp private Action<string> PassValueBetweenChildren; ``` 2. **设置Action:** 在需要接收值的子窗体中,提供一个方法来设置Action。 ```csharp public void SetPassValueAction(Action<string> action) { PassValueBetweenChildren = action; } ``` 3. **触发Action:** 当子窗体A需要向子窗体B传递值时,调用Action。 ```csharp private void Button_Click(object sender, EventArgs e) { string valueToPass = "这是子窗体间的传递值"; PassValueBetweenChildren?.Invoke(valueToPass); } ``` 4. **订阅Action:** 在子窗体B中,调用子窗体A的SetPassValueAction方法来订阅Action。 ```csharp private ChildFormA childFormA; public ChildFormB() { InitializeComponent(); childFormA = new ChildFormA(); childFormA.SetPassValueAction(ValueReceivedFromChildA); } private void ValueReceivedFromChildA(string value) { MessageBox.Show("从子窗体A接收到的值:" + value); } ``` 通过这种方式,你可以灵活地在不同的窗口之间传递数据,无论是从主窗体到子窗体,还是在子窗体之间。在实际开发中,确保数据的安全性,避免未授权的访问,并根据项目需求选择最适合的通信方式。以上就是关于窗体间相互传值的基本概念和实现方法,希望对你有所帮助。










































































- 1


- 粉丝: 13
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络营销源码学习.docx
- 中国移动WAP业务应用程序接口规范.doc
- 通信网原理课程设计.doc
- 机电接口技术课程设计.doc
- FPGA实现Cameralink纯逻辑编码解码方案及其在k7z7v7a7系列产品的应用 - 工业相机
- 公司年度网络营销推广服务项目线上推广方案.pptx
- 考研十大热门专业深度分析之计算机应用技术.doc
- 网络营销-渠道策略.pptx
- 神经网络hopfield网络专家讲座.pptx
- 一线通设计方案小区网络监控.doc
- 论项目管理中的人力团队建设与绩效.doc
- 鼎信诺审计软件的四种取数方法.pptx
- 享受健康的网络交往-公开课用.ppt
- 别墅智能家居系统解决方案.doc
- 项目管理的专业化与职业化发展培训课件.ppt
- 自动化专业实习报告书.doc


