gpt4 book ai didi

c# - 如何捕获子控件下的 mousemove 事件

转载 作者:太空狗 更新时间:2023-10-29 22:15:17 24 4
gpt4 key购买 nike

我正在尝试处理特定表单上的 mouseclick 事件,如果鼠标光标落在一组坐标之间 - 比方说一个正方形,该事件应该触发。

我明白,如果我有一个空表单,我可以简单地绑定(bind)到 mousemove 事件,然后就可以了。但实际上可能有多达 10 个不同的重叠控件,在我的测试应用程序中,mousemove 事件仅在光标位于实际窗体本身上而不是在子控件上时触发。

有谁知道在设计时子控件数量未知时如何处理这个事件?

有没有我可以使用的简单的单线笔?

最佳答案

试试这个:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AddMouseMoveHandler(this);
}

private void AddMouseMoveHandler(Control c)
{
c.MouseMove += MouseMoveHandler;
if(c.Controls.Count>0)
{
foreach (Control ct in c.Controls)
AddMouseMoveHandler(ct);
}
}

private void MouseMoveHandler(object sender, MouseEventArgs e)
{
lblXY.Text = string.Format("X: {0}, Y:{1}", e.X, e.Y);
}
}

关于c# - 如何捕获子控件下的 mousemove 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1719636/

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