当前位置:编程学习 > C#/ASP.NET >>

关于委托,事件注册后为空。。

各位大神们,在做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子页面吗 --------------------编程问答--------------------
引用 2 楼 liulingyun3c 的回复:
你是在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
--------------------编程问答-------------------- 可能出现的情况:注册事件之后,事件的订阅者被重新实例化(或者才被实例化)!~ --------------------编程问答--------------------
引用 5 楼 Java_Script__ 的回复:
可能出现的情况:注册事件之后,事件的订阅者被重新实例化(或者才被实例化)!~

有这个可能。。。但是不晓得神马时候没了成了NULL --------------------编程问答-------------------- 你上面写的代码是没有什么问题,具体除了上面的以外你又做了什么  就不清楚了,你那样写指定米问题
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,