c# 自定义组件的事件无法执行

assassion1981 2017-07-31 04:47:33
在自定义组件里定义了事件ClientConnected:


然后在winform里添加了这个组件,同时也注册了事件ClientConnected:

可是通过断点检测发现,当执行到触发事件的方法时,显示ClientConnected 仍为null,所以没有执行事件;如下:
private void RaiseClientConnected(AsyncSocketState state)
{
if (ClientConnected != null)
{
ClientConnected(this, new AsyncSocketEventArgs(state));
}
}
断点检测发现,当程序执行到 if (ClientConnected != null) 时,ClientConnected为null;但是在主程序里已经注册了事件。
求助!
...全文
228 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
assky124 2017-08-01
  • 打赏
  • 举报
回复

        /// <include file='doc\Control.uex' path='docs/doc[@for="Control.Click"]/*' />
        /// <devdoc>
        ///    <para>Occurs when the control is clicked.</para>
        /// </devdoc>
        [SRCategory(SR.CatAction), SRDescription(SR.ControlOnClickDescr)]
        public event EventHandler Click {
            add {
                Events.AddHandler(EventClick, value);
            }
            remove {
                Events.RemoveHandler(EventClick, value);
            }
        }
xdashewan 2017-08-01
  • 打赏
  • 举报
回复
引用 3 楼 powersun1981 的回复:
@xdashewan ,designer.cs里有绑定,+= . 我用的EventHandler 声明的事件,这个不会有问题吧!
designer.cs里既然有,那你监视下绑定后该值是否为空,以及什么时候开始变为空
assassion1981 2017-07-31
  • 打赏
  • 举报
回复
@xdashewan ,designer.cs里有绑定,+= . 我用的EventHandler 声明的事件,这个不会有问题吧!
ilikeff8 2017-07-31
  • 打赏
  • 举报
回复
声明成属性,后面加上{get;set;}
xdashewan 2017-07-31
  • 打赏
  • 举报
回复
看看designer.cs里有绑定的代码吗

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧