C# 主窗口通过委托让子窗口执行处理,范例
2018-03-22 12:23
387 查看
范例:主窗口点击按钮,子窗口去改变窗口里的文本控件的文本内容
主窗口FrmMain:
public partial class FrmMain : Form
{
FrmSubWindow objFrmSub = new FrmSubWindow();
public FrmMain()
{
InitializeComponent();
objFrmSub.Show();
}
private void button1_Click(object sender, EventArgs e)
{
//【第五步】调用委托,此时委托变量会执行绑定的方法
objFrmSub.objDelegateChange();
}
}
//【第一步】声明委托
public delegate void DelegateChangeTxt();
子窗口FrmSubWindow: public partial class FrmSubWindow : Form
{
//【第三步】创建委托变量
public DelegateChangeTxt objDelegateChange;
public FrmSubWindow()
{
InitializeComponent();
//【第四步】委托变量绑定方法
objDelegateChange += new DelegateChangeTxt(changeLabel);
}
//【第二步】根据委托定义一个方法,参数和返回类型要跟声明的委托保持一致
//委托方法根据实际执行的地方去写,比如现在是想操纵子窗口的label控件改变它的文本
//所以就在子窗口定义方法
private void changeLabel()
{
label1.Text = "你好!";
}
}
最后效果:
点击按钮前
![](//img-blog.csdn.net/201803221222501?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L3UwMTQyMDcxMDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
点击按钮后
主窗口FrmMain:
public partial class FrmMain : Form
{
FrmSubWindow objFrmSub = new FrmSubWindow();
public FrmMain()
{
InitializeComponent();
objFrmSub.Show();
}
private void button1_Click(object sender, EventArgs e)
{
//【第五步】调用委托,此时委托变量会执行绑定的方法
objFrmSub.objDelegateChange();
}
}
//【第一步】声明委托
public delegate void DelegateChangeTxt();
子窗口FrmSubWindow: public partial class FrmSubWindow : Form
{
//【第三步】创建委托变量
public DelegateChangeTxt objDelegateChange;
public FrmSubWindow()
{
InitializeComponent();
//【第四步】委托变量绑定方法
objDelegateChange += new DelegateChangeTxt(changeLabel);
}
//【第二步】根据委托定义一个方法,参数和返回类型要跟声明的委托保持一致
//委托方法根据实际执行的地方去写,比如现在是想操纵子窗口的label控件改变它的文本
//所以就在子窗口定义方法
private void changeLabel()
{
label1.Text = "你好!";
}
}
最后效果:
点击按钮前
点击按钮后
相关文章推荐
- C# 通过委托+异步的方式约束函数的执行超时时间
- C# 如何通过委托进行窗口传值
- C# 如何通过委托进行窗口传值
- C# WPF 通过委托实现多窗口间的传值
- C# 窗体边角圆弧处理及在C#中调用外部程序(执行批处理,打开窗口等)
- C#通过委托处理 控件
- C#跨线程操作控件 通过委托处理,MSDN上又很详细用法的说明
- C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令
- VS 之 C# 通过console 调用 exe 程序,窗口隐藏设置
- C# 弹出子窗口同时关闭主窗口(利用线程和委托)
- C# WINForm 如何关闭系统进程,调用cmd并执行命令(隐藏CMD窗口) - 赤色火焰 - 京华志
- C#处理C++库回调报错_非托管代码传递委托被垃圾回收
- C# 如何通过委托进行窗体1到窗体2的传值
- C#中分别对委托、匿名方法、Lambda表达式、Lambda表达式树以及反射执行同一方法的过程进行比较。
- C# .Net Winform窗口特效处理
- C#事件处理和委托event delegate实例简述
- !!c# 委托与多线程 -- 相比background来说,本方法针对当需要通过异步代理发起UI操作,而后线程中进行sleep操作的时使用
- 一套通过c# sap-rfc 完整处理内表输入输出的程序
- window下批处理:打开命令窗口且执行后不关闭
- C#源代码—声明委托,通过委托对象调用所指向的方法