的邊界內我有一個用戶控制檢測是否光標是一個控制
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,我有兩個顯示器。它似乎沒有區別我正在使用的監視器。
[光標放在WinForm控件(C#,WinForm的4.0)的可能重複( http://stackoverflow.com/questions/5620276/cursor-over-winform-control-c-winform-4-0) –
@ DanielA.White我在鏈接中看到的答案只針對一個控件。請注意,在這裏我掛鉤了一個全局消息過濾器。我不認爲這些會起作用。最終,我需要確切地知道鼠標的控制權,而不僅僅是包含子控件的一般用戶控件。 –