关于控件中的方法调用问题!请各位帮忙!顶帖有分!

m777 2005-09-01 02:18:31
定义了一个Control的类,如何判断这个类中的Click方法中,用户写了事件代码呢?
各位帮忙,顶帖有分!
...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
m777 2005-09-01
  • 打赏
  • 举报
回复
楼上的真是高手呀!佩服佩服!
jinjazz 2005-09-01
  • 打赏
  • 举报
回复
public bool hasClick(object sender)
{
PropertyInfo pEvents = (typeof(Control)).GetProperty("Events",BindingFlags.Instance | BindingFlags.NonPublic);
EventHandlerList fplist = pEvents.GetValue(sender,null) as EventHandlerList;

FieldInfo fEventClick = (typeof(Control)).GetField("EventClick",BindingFlags.Static | BindingFlags.NonPublic);
object key = fEventClick.GetValue(null);

return fplist[key]!=null;
}
namhyuk 2005-09-01
  • 打赏
  • 举报
回复
不行。早先的回复不算。帮顶吧。
mezyy 2005-09-01
  • 打赏
  • 举报
回复
来学习 友情up
foreversoft 2005-09-01
  • 打赏
  • 举报
回复
up && jf
namhyuk 2005-09-01
  • 打赏
  • 举报
回复
那么Control类必须另增加一个public属性或Method,返回this.Click!=null的值。
如果是用属性返回,那你在控件外部可以访问属性来判断啊。
yzgnick 2005-09-01
  • 打赏
  • 举报
回复
帮你顶!
m777 2005-09-01
  • 打赏
  • 举报
回复
我都把控件画到窗体上了,要在窗体中判断,不是在控件内部判断!
namhyuk 2005-09-01
  • 打赏
  • 举报
回复
换句话说,就是判断有没有别的对像订阅了Control类的Click事件(包括Control类本身)。
如果Click是个event,那么this.Click != null这样的判断只能在该类本身的范围内进行。
TechEye 2005-09-01
  • 打赏
  • 举报
回复

public event EventHandler Click;

..

if (this.Click != null)
{
this.Click(this, e);
}

110,524

社区成员

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

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

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