关于委托,事件注册后为空。。
各位大神们,在做winform遇到一个狠费解的问题,子页面系统配置后,点“保存”重新链接服务器、端口号、COM端口等,回到主页面MainForm,想写个什么委托事件。具体思路是重新链接服务器等的处理函数写在MainForm,在子页面保存后调用MainForm的处理函数。
待指导啊。。下面贴代码。。
主页面代码:
public delegate void LoadNewConfig(bool isReOpen);
public partial class MainForm : Form
{
SysConfig _sysConfig = new SysConfig();
private void MainForm_Load(object sender, EventArgs e)
{
_sysConfig.LNConfig += new LoadNewConfig(this.LoadNewConfigForm); //添加委托实例
}
}
public void LoadNewConfigForm(bool isReOpen)
{
if (isReOpen)
{
string a = "MMMMM";
}
}
子页面叫SysConfig :
public event LoadNewConfig LNConfig;//加载新配置文件
private void button1_Click(object sender, EventArgs e)
{
LNConfig(true);
}
然后么,进入子页面的时候,LNConfig一直是Null............新手求指导,委托神马的理解的不够、、 --------------------编程问答-------------------- 目测,没错误啊
--------------------编程问答-------------------- 你是在MainForm 里的_sysConfig实例show子页面吗 --------------------编程问答--------------------
我是在MainForm 登录时注册事件,是在子页面修改成功后调用主页面的函数,用修改后最新的APP.CONFIG配置啊。 --------------------编程问答--------------------
第一步 定义一个参数类--------------------编程问答-------------------- 可能出现的情况:注册事件之后,事件的订阅者被重新实例化(或者才被实例化)!~ --------------------编程问答--------------------
public class CustomEventArgs:EventArgs
{
//Define Property
}
第二步
在子窗体中第一个事件
public event EventHandler<CustomEventArgs> CustomClick;
第三步自绑定方法。
protected void OnCustomClick(object sender,CustomEventArgs e)
{
if(CustomClick!=null)
{
CustomClick(sender,e);
}
}
第四步 抛出事件
private void SubFormMethod()
{
OnCustomClick(this,new CustomEventArgs(){//成员属性赋值。})
}
第5步 父窗体注册
//Todo
有这个可能。。。但是不晓得神马时候没了成了NULL --------------------编程问答-------------------- 你上面写的代码是没有什么问题,具体除了上面的以外你又做了什么 就不清楚了,你那样写指定米问题
补充:.NET技术 , C#