`
zeeeitch
  • 浏览: 85845 次
  • 性别: Icon_minigender_1
  • 来自: 九江
社区版块
存档分类
最新评论

dotnet一技巧

 
阅读更多
  //看看控件是否已经绑定某事件
        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开发技巧

    本文将深入探讨一系列与“dotnet开发技巧”相关的知识点,旨在帮助开发者优化工作流程,提高编程技能。 1. **利用Visual Studio IDE的特性**:Visual Studio是.NET开发的主要IDE,它提供了丰富的功能如智能感知、...

    源码 多功能 用DotNET写的计算器

    标题中的“源码 多功能 用DotNET写的计算器”表明这是一个使用Microsoft的DotNET框架编写的具有多种功能的计算器程序。DotNET是微软推出的一个开源、跨平台的开发框架,用于构建各种类型的应用,包括桌面应用、Web...

    使用dotnet运行编译程序流程1

    #### 一、使用dotnet生成DLL文件 在.NET Core或.NET 5及以上版本中,我们可以通过`dotnet`命令来创建和管理项目,包括生成DLL文件。以下步骤详细介绍如何通过`dotnet`工具在Windows环境下创建并编译一个控制台应用...

    dotNet知识小集

    收集的一些 dotNet技巧和小知识点

    dotnet报表设计源代码_dotnet整站程序.7z

    通过学习和研究这个压缩包中的源代码,开发者不仅可以掌握.NET报表设计的核心技巧,还能了解到如何构建一个完整的.NET网站应用程序,从数据获取到用户交互的全过程。这对于提升个人技能和解决实际项目问题具有极大的...

    dotNET入门经典教程:七天学会用.NET绘图

    本教程"dotNET入门经典教程:七天学会用.NET绘图"旨在帮助初学者在短短一周内掌握.NET平台上的图形编程技术。下面,我们将深入探讨这个教程可能涵盖的关键知识点。 第一天:基础概念与环境搭建 首先,教程会介绍...

    dotnet-Transpiler从C到Kotlin

    总结来说,"dotnet-Transpiler从C到Kotlin"是一个关注于跨语言编译技术的专题,通过研究ProjectExodus-master这样的项目,开发者可以深入了解如何实现C#到Kotlin的转换,从而在.NET和Android开发之间架起桥梁。这一...

    DotNET中文手册(chm)

    在这一部分,读者将学习到.NET Framework的一些高级特性和技术,如多线程编程、委托和事件、内存管理和垃圾回收,以及如何利用.NET Framework的性能优化技巧。此外,还可能涉及.NET Framework的安全模型、代码访问...

    Dotnet反编译器

    本文将深入探讨"Dotnet反编译器"这一主题,尤其是Reflector这款知名的反编译器,它曾经在.NET社区中占据重要地位。 首先,我们需要理解什么是.NET反编译器。在编程领域,反编译器是一种软件,它能将已编译的计算机...

    dotnet-RESTful接口调试分享利器

    标题中的“dotnet-RESTful接口调试分享利器”暗示了我们将在.NET开发环境中探讨如何高效地调试RESTful API。RESTful是一种广泛应用于Web服务的设计风格,它基于HTTP协议,通过GET、POST、PUT、DELETE等方法操作资源...

    DotNet框架源代码下载器(全部版本)

    标题中的"DotNet框架源代码下载器(全部版本)"是一个工具,专门设计用来下载.NET框架的不同版本的源代码。这个工具可能是由开发者社区或个人制作,旨在方便那些想要深入研究.NET框架的程序员。源代码可以包括公共...

    DotNET_CS(WinForm)开发技巧点滴

    【 DotNET_CS(WinForm) 开发技巧点滴】 在.NET框架下的C/S(客户端/服务器)应用程序开发中,WinForm是一种常见的用户界面技术。这里我们探讨一些开发中的实用技巧,这些技巧可以帮助提升开发效率和软件质量。 1. ...

    C# et DotNet_Csharp_Sharp_

    通过阅读《C# et DotNet》,开发者不仅可以精通C#编程语言,还能掌握利用.NET框架开发高效、可靠的软件系统的技巧。 总的来说,《C# et DotNet》这本书是IT专业人士提升C#和.NET技能的理想资源,无论你是初学者还是...

    DotNETCore_API

    `dotnet watch` 是一个实用工具,可以帮助开发者在代码更改后自动重新编译应用程序。这对于快速迭代开发非常有用。 ```sh dotnet watch run ``` 运行此命令后,每当源代码发生更改时,程序都会自动重新编译并启动...

    Client(dotnet).rar_dotnet_opc client

    标题中的“Client(dotnet).rar_dotnet_opc client”表明这是一个使用.NET框架(dotnet)开发的OPC(OLE for Process Control)客户端示例。OPC是微软提出的一种标准接口,用于工业自动化设备与应用程序之间的数据...

    C# dotnet处理图片

    通过研究它的源代码,开发者可以学习到更多关于图像处理、图形用户界面设计以及高级C#编程技巧。 总之,C#和WinForms为处理图片提供了强大的工具。无论是简单的显示还是复杂的图像操作,都可以通过熟练运用System....

    setup factory 7打包 DotNet35

    通过上述分析,我们可以看出创建这样一个安装包涉及到的复杂性和专业知识,包括软件打包技术、.NET Framework的理解和应用、测试与调试技巧,以及对安装流程的优化。这对于IT专业人士来说,是一项需要深厚技术功底和...

    视频网站系统_dotnet影音娱乐网站.rar

    【标题】"视频网站系统_dotnet影音娱乐网站.rar" 是一个基于 .NET 技术构建的影音娱乐网站的源码压缩包。这个项目的核心是利用 .NET Framework 或 .NET Core 开发平台,为用户提供在线观看视频、音频内容的平台。...

Global site tag (gtag.js) - Google Analytics