gpt4 book ai didi

c# - 有没有办法创建一个共同的事件?

转载 作者:行者123 更新时间:2023-11-30 19:38:50 25 4
gpt4 key购买 nike

我正在创建一种日志记录机制。任务是记录每个按钮点击并检查在生产环境中使用最多的功能。

我想知道是否有一种方法可以为我的应用程序(包括引用的项目)中的所有按钮点击创建一个事件。因此,当单击按钮时,中央代码会在按钮的单击事件处理程序之后运行。

最佳答案

不幸的是,没有简单的方法可以自动将代码挂接到应用程序中每个按钮中的每个 Click 事件。

但是,您可以捕获窗口消息,检查来自任何按钮的点击消息。

所以你可以使用 IMessageFilter以这种方式做一些关于哪个按钮被点击的统计数据。

public partial class Form1 : Form, IMessageFilter
{
public Form1()
{
InitializeComponent();
Application.AddMessageFilter(this);
}

public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 0x0201) // This is left click
{
var ctrl = Control.FromHandle(m.HWnd);
if (ctrl is Button)
Debug.WriteLine(ctrl.Name);
}
return false;

}
}

关于c# - 有没有办法创建一个共同的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30791592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com