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

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

概述我想创建一个应用程序来截取我的应用程序的所有形式的所有UI事件,并将它们写入日志.这些数据可以用于查看哪些控件使用最多,顺序是什么等.问题是我希望这是自动发生的,而不需要修改现有的类. 我制作了一个原型,将一个方法附加到表单中所有控件的click事件,但是如何对所有表单执行此 *** 作?在 *** 作事件时,Reflection需要一个目标对象,但只能轻松访问启动表单. 有没有办法挂钩对象的构造函数?然后我可以 我想创建一个应用程序来截取我的应用程序的所有形式的所有UI事件,并将它们写入日志.这些数据可以用于查看哪些控件使用最多,顺序是什么等.问题是我希望这是自动发生的,而不需要修改现有的类.

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

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

提前致谢!

解决方法 您可以安装 message filter.

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

总结

以上是内存溢出为你收集整理的拦截C#中应用程序中所有控件的单击事件(WinForms)全部内容,希望文章能够帮你解决拦截C#中应用程序中所有控件的单击事件(WinForms)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存