//看看控件是否已经绑定某事件
public static bool isBinded(Control control, string EventName, string EventHandlerTypeName)
//, string eventName, Type controlType)
{
if (GetComponentEventDelegate(control, EventName, EventHandlerTypeName) == null) return false;
else
return GetComponentEventDelegate(control, EventName, EventHandlerTypeName).Length > 0;
}
private static Delegate[] GetComponentEventDelegate(Component component, string EventName,
string EventHandlerTypeName)
{
Type componentType = component.GetType();
PropertyInfo eventsPropertyInfo =
componentType.GetProperty("Events", BindingFlags.Instance | BindingFlags.NonPublic);
EventHandlerList eventHanlderList = eventsPropertyInfo.GetValue(component, null) as EventHandlerList;
do
{
FieldInfo[] fieldInfoList =
componentType.GetFields(BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic);
foreach (FieldInfo fieldInfo in fieldInfoList)
{
object fieldValue = fieldInfo.GetValue(component);
if (fieldValue != null)
{
Type fieldType = fieldValue.GetType();
if (fieldType.Name == EventHandlerTypeName && (fieldValue as Delegate) != null)
{
return (fieldValue as Delegate).GetInvocationList();
}
}
}
componentType = componentType.BaseType;
} while (componentType != null);
return null;
}
分享到:
相关推荐
本文将深入探讨一系列与“dotnet开发技巧”相关的知识点,旨在帮助开发者优化工作流程,提高编程技能。 1. **利用Visual Studio IDE的特性**:Visual Studio是.NET开发的主要IDE,它提供了丰富的功能如智能感知、...
标题中的“源码 多功能 用DotNET写的计算器”表明这是一个使用Microsoft的DotNET框架编写的具有多种功能的计算器程序。DotNET是微软推出的一个开源、跨平台的开发框架,用于构建各种类型的应用,包括桌面应用、Web...
#### 一、使用dotnet生成DLL文件 在.NET Core或.NET 5及以上版本中,我们可以通过`dotnet`命令来创建和管理项目,包括生成DLL文件。以下步骤详细介绍如何通过`dotnet`工具在Windows环境下创建并编译一个控制台应用...
收集的一些 dotNet技巧和小知识点
通过学习和研究这个压缩包中的源代码,开发者不仅可以掌握.NET报表设计的核心技巧,还能了解到如何构建一个完整的.NET网站应用程序,从数据获取到用户交互的全过程。这对于提升个人技能和解决实际项目问题具有极大的...
本教程"dotNET入门经典教程:七天学会用.NET绘图"旨在帮助初学者在短短一周内掌握.NET平台上的图形编程技术。下面,我们将深入探讨这个教程可能涵盖的关键知识点。 第一天:基础概念与环境搭建 首先,教程会介绍...
总结来说,"dotnet-Transpiler从C到Kotlin"是一个关注于跨语言编译技术的专题,通过研究ProjectExodus-master这样的项目,开发者可以深入了解如何实现C#到Kotlin的转换,从而在.NET和Android开发之间架起桥梁。这一...
在这一部分,读者将学习到.NET Framework的一些高级特性和技术,如多线程编程、委托和事件、内存管理和垃圾回收,以及如何利用.NET Framework的性能优化技巧。此外,还可能涉及.NET Framework的安全模型、代码访问...
本文将深入探讨"Dotnet反编译器"这一主题,尤其是Reflector这款知名的反编译器,它曾经在.NET社区中占据重要地位。 首先,我们需要理解什么是.NET反编译器。在编程领域,反编译器是一种软件,它能将已编译的计算机...
标题中的“dotnet-RESTful接口调试分享利器”暗示了我们将在.NET开发环境中探讨如何高效地调试RESTful API。RESTful是一种广泛应用于Web服务的设计风格,它基于HTTP协议,通过GET、POST、PUT、DELETE等方法操作资源...
标题中的"DotNet框架源代码下载器(全部版本)"是一个工具,专门设计用来下载.NET框架的不同版本的源代码。这个工具可能是由开发者社区或个人制作,旨在方便那些想要深入研究.NET框架的程序员。源代码可以包括公共...
【 DotNET_CS(WinForm) 开发技巧点滴】 在.NET框架下的C/S(客户端/服务器)应用程序开发中,WinForm是一种常见的用户界面技术。这里我们探讨一些开发中的实用技巧,这些技巧可以帮助提升开发效率和软件质量。 1. ...
通过阅读《C# et DotNet》,开发者不仅可以精通C#编程语言,还能掌握利用.NET框架开发高效、可靠的软件系统的技巧。 总的来说,《C# et DotNet》这本书是IT专业人士提升C#和.NET技能的理想资源,无论你是初学者还是...
`dotnet watch` 是一个实用工具,可以帮助开发者在代码更改后自动重新编译应用程序。这对于快速迭代开发非常有用。 ```sh dotnet watch run ``` 运行此命令后,每当源代码发生更改时,程序都会自动重新编译并启动...
标题中的“Client(dotnet).rar_dotnet_opc client”表明这是一个使用.NET框架(dotnet)开发的OPC(OLE for Process Control)客户端示例。OPC是微软提出的一种标准接口,用于工业自动化设备与应用程序之间的数据...
通过研究它的源代码,开发者可以学习到更多关于图像处理、图形用户界面设计以及高级C#编程技巧。 总之,C#和WinForms为处理图片提供了强大的工具。无论是简单的显示还是复杂的图像操作,都可以通过熟练运用System....
通过上述分析,我们可以看出创建这样一个安装包涉及到的复杂性和专业知识,包括软件打包技术、.NET Framework的理解和应用、测试与调试技巧,以及对安装流程的优化。这对于IT专业人士来说,是一项需要深厚技术功底和...
【标题】"视频网站系统_dotnet影音娱乐网站.rar" 是一个基于 .NET 技术构建的影音娱乐网站的源码压缩包。这个项目的核心是利用 .NET Framework 或 .NET Core 开发平台,为用户提供在线观看视频、音频内容的平台。...