gpt4 book ai didi

c# - 检测光标是否在控件的边界内

转载 作者:IT王子 更新时间:2023-10-29 04:52:26 25 4
gpt4 key购买 nike

我有一个用户控件

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

public bool PreFilterMessage(ref Message m)
{
var mouseLocation = Cursor.Position;

if (Bounds.Contains(PointToClient(mouseLocation)))
{
bool aBool = true;//breakpoint
bool two = aBool;//just assignment so compiler doesn't optimize my bool out
}
if (m.Msg != 0x20a) // Scrolling Message
{
return false;//ignore message
}
return false;
}
}

当我漂浮在父窗体中包含的用户控件上时,断点未命中。断点很接近,但我可以在用户控件内的实际文本框中,但不会被击中。如何准确判断自己是否在此用户控件范围内?

FWIW,我有两个显示器。我使用的显示器似乎没有什么不同。

最佳答案

尝试针对 Control.ClientRectangle 进行 HitTest 而不是 Control.Bounds:

if (ClientRectangle.Contains(PointToClient(Control.MousePosition))) {
bool aBool = true;//breakpoint
bool two = aBool;
}

关于c# - 检测光标是否在控件的边界内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520043/

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