需求如下:
父界面上有几个按钮,需要在点击按钮的时候向父界面传值,以知道该控制哪个界面显示。
父界面:WIN1
子界面:WIN2
此处或者说是子控件向父控件传值
1.子界面定义委托
WIN1里写:
public delegate void ChangeTextHandler(string text);
public event ChangeTextHandler ChangeTextEvent;
2.父界面在加载了子界面之后,注册委托。必须在父界面load的时候或者之前注册
WIN2里写:
ucSetting1.ChangeTextEvent += new Control.ucSetting.ChangeTextHandler(ShowMessage);
这里ucSetting1就是子控件名
3.然后在父界面写好委托相应的实现函数ShowMessage
还是在WIN2
private void ShowMessage(string msgx)
{
switch (msgx)
{
//DOSTH
}
}
4.完了之后要在子界面写触发委托的函数。
在WIN1写:
public string text;
text = "SystemSettingControl"
if (ChangeTextEvent != null)
{
ChangeTextEvent(text);
}
然后界面运行的时候就会根据传入的参数执行相应的父界面里的函数.
其实说白了也挺简单,弄会了的话,并不难
时间: 2024-10-27 09:36:07