委托入门
故事:老大和老三的故事
大学宿舍老大有女朋友,老三木有。有一天,老三准备外出逛逛,老大在床上喊老三:"老三,顺便帮我买两张电影票,我要和女友一起看"。苦逼的老三吭哧吭哧帮老大买电影票
去了。老大委托老三买电影票,这就是委托。也许你会问为什么老大不直接去买呢?因为老大要泡妞没时间。那么,老三得买什么类型的电影票呢?是《致青春》还是《中国合伙
人》?这得老大说了算。老大那边提供了具体买电影票的方法,但老大自己不动手,真正执行买电影票的是苦逼的老三,故事未完待续......
需求:
要求:使用委托、事件
目标:在A窗体中点击按钮改变B窗体的标题
理解:B窗体委托A窗体改变自己的标题
分析:
1.窗体的显示顺序:首先我们要看一下B窗体的标题是什么,因此首先显示B窗体,在B窗体添加按钮显示A窗体。
2.改变B窗体的标题,我们定义一个ChangeTitle(string Title)来改变B窗体标题,那么,这个ChangeTitle放在哪里呢?当然是B窗体了。
3.在A窗体中定义委托,事件,以及触发该事件的时机。
先看效果:
窗体A code:

1 public delegate void ChangeFormTitle(string title); 2 3 public partial class A : Form 4 { 5 public event ChangeFormTitle changeEventHandle; 6 7 public A() 8 { 9 InitializeComponent(); 10 } 11 12 private void button1_Click(object sender, EventArgs e) 13 { 14 if (changeEventHandle != null) 15 { 16 changeEventHandle(titleTextBox.Text); 17 } 18 } 19 }
窗体B code:

1 public partial class B : Form 2 { 3 public B() 4 { 5 InitializeComponent(); 6 } 7 8 private void button1_Click(object sender, EventArgs e) 9 { 10 A a = new A(); 11 a.changeEventHandle += new ChangeFormTitle(ChangeTitle); 12 a.ShowDialog(); 13 } 14 15 public void ChangeTitle(string name) 16 { 17 this.Text = name; 18 } 19 }
总结:整个过程就是A窗体通过委托回调B窗体的方法。
作者:三当家
出处:http://www.cnblogs.com/the-three/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架