当前位置: 首页 > news >正文

C#中 Winform如何实现跨页面调用

设计页面 如下  其中Form2为启动项  当点击订阅消息的时候  会创建Form1页面    当 Form1页面的点击发送的时候  自动将发送的消息同步到label1中

Form2的代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace _06._27跨页面调用
{public partial class Form2 : Form{public Form2(){InitializeComponent();btnOpenForm1.Click += BtnOpenForm1_Click;}private void BtnOpenForm1_Click(object sender, EventArgs e){Form1 form1 = new Form1();// 订阅事件(使用Lambda表达式)form1.MessageSent += (eventsender, msg) =>{lblStatus.Text = $"收到消息: {msg}";// 可以在这里执行其他UI更新};form1.Show();// 或者显示为对话框// form1.ShowDialog();}}
}

Form1的代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace _06._27跨页面调用
{public partial class Form1 : Form{public Form1(){InitializeComponent();btnSend.Click +=btnSend_Click;//btnSend.Click +=new EventHandler(btnSend_Click);}// 1. 声明事件(使用EventHandler委托)public event EventHandler<string> MessageSent;// 2. 触发事件的方法protected virtual void OnMessageSent(string message){MessageSent?.Invoke(this, message);}// 3. 实际触发点private void btnSend_Click(object sender, EventArgs e){OnMessageSent(txtMessage.Text);}}
}

相关文章:

  • 智能体Manus和实在Agent的区别
  • MySQL 连接指定端口后,为什么实际仍是 3306?
  • 机器学习基础 多层感知机
  • PART 7 视频
  • 【Elasticsearch】Linux环境下安装Elasticsearch
  • Istio 简介
  • 【CV数据集介绍-40】Cityscapes 数据集:助力自动驾驶的语义分割神器
  • 优雅翻译前端返回中文描述
  • Java8方法引用:简洁高效的编程利器
  • 打造无障碍网页应用的利器:Base UI
  • 【Python】京东商品SKU数据采集参数与测试
  • HTTP常见状态码汇总
  • Linux tcp_info:监控TCP连接的秘密武器
  • 如何在 Manjaro Linux 上安装 Deepin 桌面
  • 代码随想录|图论|09沉没孤岛
  • 【stm32】HAL库开发——CubeMX配置串口通讯(中断方式)
  • gRPC技术解析与python示例
  • 如何将两个不同类性的类组合成一个json数据
  • LLM驱动开发:正在重塑软件工程的下一场革命
  • 力扣第455场周赛