의 범위 내에 있으면 나는 부모 폼에 포함 된 사용자 컨트롤 위에 떠 언제 사용자 컨트롤커서 제어
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 귀하의 링크에서 볼 수있는 답변은 하나의 컨트롤에만 해당됩니다. 여기서 나는 전역 메시지 필터에 연결하고있다. 나는 그것이 효과가 있다고 생각하지 않는다. 결국 마우스 컨트롤이 자식 컨트롤을 포함하는 일반 사용자 컨트롤뿐만 아니라 정확히 무엇인지 알아야합니다. –