首页 / C# / C#窗体间信息的双向传送(二)利用委托
C#窗体间信息的双向传送(二)利用委托
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#窗体间信息的双向传送(二)利用委托,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1861字,纯文字阅读大概需要3分钟。
内容图文
![C#窗体间信息的双向传送(二)利用委托](/upload/InfoBanner/zyjiaocheng/853/9d234f218b394286a8d5c78da47c5b19.jpg)
利用委托“广而告之”
委托是一种新的面向对象语言特性,微软公司在设计.NET编程语言(如C#和Visual Basic .NET)时引如入。C#使用delegate关键字来定义委托,可以将其看成是一种数据类型,用于定义变量。但它所定义的变量能接收的值只能是一个方法。即委托变量可以接收一个对象实例方法的引用。
1.主窗口->从窗口:主窗体使用.NET系统预定义的委托 Action<T>定义了一个私有字段:
private Action<int> m_delegateShow = null; //使用.NET预定义委托
当创建从窗体对象时,将从窗体所定义的用于接收消息的__Show方法“挂接”到此字段中:
private frmOther m_frmOhter = null;
private void m_btn_ShowForm_Click(object sender, EventArgs e)
{
m_frmOhter = new frmOther();
m_frmOhter.Show();
m_frmOhter.m_delegateDisplay = __Display; //将主窗体的私有方法挂接到从窗体的委托上
m_delegateShow = m_frmOhter.__Show; //将从窗体的公有方法挂接到主窗体的委托上
}
主窗体的以下代码完成信息的传递工作,当移动主窗体的滚动条时,CLR将调用m_delegateShow委托所引用的__Show方法,而被执行的方法能通过方法参数得到m_hScrollBar.Value的当前值。
private void m_hScrollBar_Scroll(object sender, ScrollEventArgs e)
{
m_delegateShow(m_hScrollBar.Value);
}
private void __Display(int num) //主窗体的私有方法
{
m_txt_Num.Text = num.ToString();
}
2.从窗口->主窗口:子窗体自定义一个公有Action委托,在主窗体中,将主窗体的__Display方法挂接到从窗体的委托m_delegateDisplay 上(利用委托,从窗体可以实现调用主窗体的私有方法)
public Action<int> m_delegateDisplay = null;
private int m_nCounter = 0;
public void __Show(int num) //从窗体的公有方法
{
m_txt_Result.Text = num.ToString();
}
private void m_btn_Counter_Click(object sender, EventArgs e)
{
m_nCounter++;
m_delegateDisplay(m_nCounter); //调用m_delegateDisplay委托所引用的__Display方法
}
3.在主窗体中单击“创建从窗口”按键,生成一个从窗体,移动主窗体的滚动条,从窗体显示相应结果。单击从窗体的“计数”按钮,主窗体显示按键次数。
内容总结
以上是互联网集市为您收集整理的C#窗体间信息的双向传送(二)利用委托全部内容,希望文章能够帮你解决C#窗体间信息的双向传送(二)利用委托所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。