加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

拦截C#中应用程序中所有控件的单击事件(WinForms)

发布时间:2020-12-15 04:28:54 所属栏目:百科 来源:网络整理
导读:我想创建一个应用程序来截取我的应用程序的所有形式的所有UI事件,并将它们写入日志.这些数据可以用于查看哪些控件使用最多,顺序是什么等.问题是我希望这是自动发生的,而不需要修改现有的类. 我制作了一个原型,将一个方法附加到表单中所有控件的click事件,但
我想创建一个应用程序来截取我的应用程序的所有形式的所有UI事件,并将它们写入日志.这些数据可以用于查看哪些控件使用最多,顺序是什么等.问题是我希望这是自动发生的,而不需要修改现有的类.

我制作了一个原型,将一个方法附加到表单中所有控件的click事件,但是如何对所有表单执行此操作?在操作事件时,Reflection需要一个目标对象,但只能轻松访问启动表单.

有没有办法挂钩对象的构造函数?然后我可以在新表格的所有事件中“注入”我的方法.或许还有另一种方法可以做到这一点.

提前致谢!

解决方法

您可以安装 message filter.

消息过滤器是实现IMessageFilter的对象. WinForms为每个通过线程消息循环的消息调用PreFilterMessage方法.这足以监视整个应用程序的用户输入(并为您提供操作它的选项).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读