在WinForm中,能不能判断一个Button是否绑定了处理程序呢?
如果可以,该怎么做呢?
如果可以,该怎么做呢?
解决方案 »
- c#编写dll供pb调用问题
- WinForm里文字和图片展示问题
- 2个字符串对比,取出不相同的?
- 我用wmi的Win32_NetworkAdapter,为什么会得到三个不同的网卡物理地址,而用ipconfig/all在dos窗口中只得到一个网卡物理地址,这是怎么回事?
- 有一个字符串,怎么让它显示时加个回车换行。谢谢!!
- 关于timer的疑问
- !!!将java代码转成C#代码!!!
- 再次求助关于调用含指针的C++DLL的问题
- WinForm动态添加到Panel里面的控件不知道怎样定位
- 如何在客户端的JavaScript中调用服务器端的函数,谢谢!头痛!在线等候!
- 成熟商业 财务进销存早期版本源码分享(30M完全C#)
- 如何让控件获得焦点?
{
}
大家都有一点想当然了吧
if (button1.Click == null)
{
}
对啊
{}
如在Form1中判断Form2(或Form1本身)中的所有按钮是有事件,则
Form2 f=new Form2();
fe(f,f);
//Form1中调用时.如是判断Form1中按钮,直接fe(this,this),调试过的,代码就不格式化了private void fe(Form frm,Control pctl)
{
foreach(Control ctl in pctl.Controls)
{
if(ctl is Button)
{
if(HaveBindClickEvent(frm,(Button)ctl))
this.listBox1.Items.Add(ctl.Name);
}
if(ctl.Controls.Count>0)
fe(frm,ctl);
}
}private bool HaveBindClickEvent(Control frm,Button btn)
{
System.Reflection.Assembly a=System.Reflection.Assembly.GetAssembly(frm.GetType());
System.Type typ=a.GetType(frm.GetType().FullName,true);
System.Reflection.MethodInfo[] methods=typ.GetMethods(BindingFlags.Instance|BindingFlags.NonPublic);
foreach(MethodInfo mi in methods)
{
if(mi.Name.StartsWith(btn.Name + "_Click")) //按钮事件不要乱改
return true;
}
return false;
}
{
return this.button1.Click != null;
}外部调用:
xx.CheckButtonClientEvent()