首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

委托和事件的使用,该如何处理

2012-02-25 
委托和事件的使用在基窗口如下定义:publicdelegatevoidCustomWMHandler(intWM_message)publiceventCustom

委托和事件的使用
在基窗口如下定义:
                public   delegate   void   CustomWMHandler(int   WM_message);
                public   event   CustomWMHandler   WMHandler;

                protected   override   void   DefWndProc   (   ref   System.Windows.Forms.Message   m   )
                    {
                            switch   (m.Msg)
                            {
                                    case   message.WM_First:
                                    case   message.WM_Add:
                                    case   message.WM_Delete:
                                    case   message.WM_Last:
                                    case   message.WM_Next:
                                    case   message.WM_Prior:
                                    case   message.WM_Redo:
                                    case   message.WM_Save:
                                    case   message.WM_Undo:
                                            WMHandler(m.Msg);
                                            break;
                                    default:
                                            base.DefWndProc(ref   m);//调用基类函数处理非自定义消息。
                                            break;
                            }
                  }
如继承窗口中没有定义:WMHandler   +=   new   CustomWMHandler(SecurityModuleAppFM_WMHandler);
就会出现:未处理的NullReferenceException       未将对象引用设置到对象的实例。

如何做到像控件的click事件那样,可以不处理些事件而不出现异常?

[解决办法]
try()处理掉..
------解决方案--------------------


//没事多看看别人的源代码
if(WMHandler != null)
{
WMHandler(m.Msg);
}
[解决办法]
try
{
}
catch
{
}
[解决办法]
判断WMHandler是否为空
[解决办法]
ls正解
[解决办法]
没有初试化WMHandler,你这句WMHandler(m.Msg);肯定会报错的

[解决办法]
Optione(找个工作太难了)
正确
[解决办法]
Optione 正确

热点排行