反射应用一则
来源:互联网 发布:四川广电广元网络纪检 编辑:程序博客网 时间:2024/06/08 17:58
private void MenuDropDownOpenedHandler(object sender, EventArgs e)
{
ToolStripMenuItem menu = sender as ToolStripMenuItem;
//Console.WriteLine("this DropDown menu is : {0}", menu.Text);
foreach (ToolStripItem item in menu.DropDownItems)
{
ToolStripMenuItem childMenu = item as ToolStripMenuItem;
if (childMenu == null)//非ToolStripMenuItem项,不处理
{
continue;
}
else
{
if(childMenu.DropDownItems.Count > 0 )//DropDown菜单,不处理
{
continue;
}
else//叶子菜单,判断是否订阅Click事件,已决定是否Disable
{
PropertyInfo propertyInfo = (typeof(ToolStripItem)).GetProperty("Events", BindingFlags.Instance | BindingFlags.NonPublic);
EventHandlerList eventHandlerList = (EventHandlerList)propertyInfo.GetValue(childMenu, null);
FieldInfo fieldInfo = (typeof(ToolStripItem)).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
Delegate d = eventHandlerList[fieldInfo.GetValue(null)];
//Console.WriteLine("this Click menu is: {0}", childMenu.Text);
if (d != null)
{
//foreach (Delegate de in d.GetInvocationList())
//{
// Console.WriteLine(de.Method.Name);
//}
childMenu.Enabled = true;
}
else
{
childMenu.Enabled = false;
}
}
}
}
}
- 反射应用一则
- [Python]一则应用
- js定时器应用一则
- 反射一则 以字符串获得属性
- 批处理应用一则:批量删除文件
- 线性代数的一则数据加密应用
- Oracle SQL行列转换应用实例一则
- redis应用调优经验一则
- innodb中的事务的一则应用
- oracle触发器(trigger)应用示例一则
- 反射应用
- 反射应用
- 数字证书在PKI认证系统中的应用一则
- RAC-DG升级后无法同步应用案例一则
- Python循环嵌套应用案例一则:判断丑数
- java反射部分应用
- 反射入门及应用
- 反射的简单应用
- 让CRM抛弃软件
- 解决htmlfile: 未知的运行时错误
- 寻找成为开发高手的密匙
- 从以空格为分隔符的整数字符串中分离出所有整数的Erlang程序
- salary增长示意图
- 反射应用一则
- Linux之VI命令
- window.parent与window.opener的区别
- 解决ORA-12560: TNS: 协议适配器错误
- No row with the given identifier exists错误
- Oracle数据导入/导出命令
- parseInt()
- RegExp对象
- 深入探索c/c++函数(2)---普通成员函数调用的基本过程