首页 / C# / 正文

再谈C# Winforms桌面应用程序实现跨窗体间委托传值(实例)

1677 发布于: 2022-07-05 读完约需3分钟

前言

关于C# Winforms桌面应用程序跨窗体传值其实是一个老生常谈的问题了。我之前在码友网也写过多篇C# Winforms桌面应用程序跨窗体传值的实例文章,比如:

《C# WINFORM窗体间通过委托和事件传值(自定义事件参数)—实例详解》
《C#/.NET WINFORM中使用委托和事件在类中更新窗体UI控件》

那为什么还要“再谈”C# Winforms桌面应用程序跨窗体委托传值呢?因为对于绝大多数C#&.NET新手来说,要学习并熟练掌握C#的委托,事件等是比较难的知识点,需要开发者不断地学习和项目实践。

并且,实现C# Winforms窗体间传值的方案也并不止一种,本文将为C#&.NET开发者们演示使用一种特殊的委托(delegate)—Action来实现的跨窗体传值实例。

效果预览

本实例主要演示的是联系人管理,其中包括新建联系人,联系人列表等功能。

实例的最终预览效果如下:

C# Winforms桌面应用程序实现跨窗体间委托(Action)传值预览效果

创建解决方案及项目

打开Visual Studio 2022,创建一个用于测试的解决方案,命名为:WindowsFormsApp1,再在解决方案中创建名为WindowsFormsApp1的项目。

分别新建三个Winform窗体:FrmMainFrmCreateFrmList 和一个联系人的类Contact.cs

联络人类(Contact.cs)定义如下:

主窗体FrmMain.cs

在主窗体,【新建联系人】按钮事件中,创建了FrmCreate的实例frm,同时为frm实例设置了回调(委托)OnContactCreated这一步是委托传值的关键

新建联系人窗体 FrmCreate.cs

在【新建联系人】窗体中,我们定义了联系人创建成功的回调(委托),当点击“保存联系人”按钮后,如果调用者设置了OnContactCreated回调,则会执行回调中的方法。其中,语句OnContactCreated?.Invoke(contact);是关键。

联系人列表窗体 FrmList.cs

如果你对本演示的源码感兴趣,可从如下地址获取实例源码:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: netcore/DM 平台管理

下一篇: [亲测]VMware虚拟机中实现Ubuntu 20.04磁盘(mapper/ubuntu--vg-ubuntu--lv)扩容

本文永久链接码友网 » 再谈C# Winforms桌面应用程序实现跨窗体间委托传值(实例)

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册