委托入门

故事:老大和老三的故事
大学宿舍老大有女朋友,老三木有。有一天,老三准备外出逛逛,老大在床上喊老三:"老三,顺便帮我买两张电影票,我要和女友一起看"。苦逼的老三吭哧吭哧帮老大买电影票 去了。老大委托老三买电影票,这就是委托。也许你会问为什么老大不直接去买呢?因为老大要泡妞没时间。那么,老三得买什么类型的电影票呢?是《致青春》还是《中国合伙 人》?这得老大说了算。老大那边提供了具体买电影票的方法,但老大自己不动手,真正执行买电影票的是苦逼的老三,故事未完待续......

需求:
要求:使用委托、事件
目标:在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     }
View Code
复制代码

窗体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     }
View Code
复制代码

总结:整个过程就是A窗体通过委托回调B窗体的方法。

posted @   三当家  阅读(186)  评论(0编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示