问一个c# winform自定义控件的问题

lighting_pig 2006-06-13 05:26:58
我自己弄了一个控件,上面放了几个按钮,然后想要响应事件
比如该控件叫myTabControl,我把几个按钮的事件都绑定到 myTabControl_Click上

然后界面上拖一个,名叫 myTabControlMain,然后我试图响应窗体上的myTabControlmyTabControl_ClickMain_Click总是没反应,
控件的内部事件myTabControl_Click倒是运行了,谁告诉我如何解决这个问题啊
...全文
276 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lighting_pig 2006-06-14
  • 打赏
  • 举报
回复
多谢秋枫,搞定了,原来需要自己写个委托
上网找了无数个例子,都是直接弄得,真不明白他们的程序怎么跑起来的^_^
marvelstack 2006-06-13
  • 打赏
  • 举报
回复
事件需要暴露到组件层,看这里的实现,
http://blog.csdn.net/zhzuo/archive/2004/11/30/199599.aspx
lighting_pig 2006-06-13
  • 打赏
  • 举报
回复
控件本身没有去触发这个事件吧?

不懂,我什么都没有干,

也就是说需要自己去写void OnClick(.......)


我的控件里面的代码是
this.Click += new System.EventHandler(this.myTabControl_Click);


protected void myTabControl_Click(object sender, System.EventArgs e)
{

}

然后调用控件的窗口里的代码是
this.myTabControlMain.Click += new System.EventHandler(this.myTabControlMain_Click);
protected void myTabControlMain_Click(object sender, System.EventArgs e)
{}

运行的时候我设断点发现myTabControlMain_Click没运行,而myTabControl_Click运行了,而我希望myTabControlMain_Click运行

不明白你说的OnClick写在那儿

Reeezak 2006-06-13
  • 打赏
  • 举报
回复
XXX.click += new eventhandler(this.myTabControl1_Click);
这样就OK了啊

我估计是你的控件本身没有去触发这个事件吧?

void OnClick(.......)
{
if(this.Click != null)
this.Click(this, eventargs.empty);
}
Reeezak 2006-06-13
  • 打赏
  • 举报
回复
那么你的事件有订阅吗?

贴一个代码片断出来吧
lighting_pig 2006-06-13
  • 打赏
  • 举报
回复
也就是说怎样让做好的控件响应click事件
lighting_pig 2006-06-13
  • 打赏
  • 举报
回复
自定义控件设计的时候可以弄很多事件,我的click事件是myTabControl_Click

控件做好以后拖到窗体上名字叫myTabControl1,默认的相应事件myTabControl1_Click

然后我用鼠标去点,myTabControl_Click有反应,而我希望的myTabControl1_Click没反应,明白了吗
Reeezak 2006-06-13
  • 打赏
  • 举报
回复
没看明白
lighting_pig 2006-06-13
  • 打赏
  • 举报
回复
试图响应窗体上的myTabControlMain_Click总是没反应

110,538

社区成员

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

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

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