2

一旦触发 MouseEntered 事件,我就试图将光标锁定到 PictureBox 中。

我想在键入 Ctrl + Enter 时取消此操作(或另一个快捷方式,如果有这方面的最佳做法)

我正在尝试以此处提到的方式清除剪辑,但我认为我的 MouseEnter 不断扼杀我必须离开的任何机会。

任何想法如何解决这个问题?

4

2 回答 2

2

编辑:根据这个这个:设置为空矩形:

 Cursor.Clip = Rectangle.Empty;
于 2012-07-10T19:20:33.770 回答
1

我不是 100% 确定你在这里问什么,因为提到了MouseEnter你没有展示的活动。假设您自己会解决这个问题,我实际上不同意该线程中接受的答案。反编译System.Windows.Forms你有:

internal static Rectangle ClipInternal
{
    get
    {
        NativeMethods.RECT rECT = default(NativeMethods.RECT);
        SafeNativeMethods.GetClipCursor(ref rECT);
        return Rectangle.FromLTRB(rECT.left, rECT.top, rECT.right, rECT.bottom);
    }
    set
    {
        if (value.IsEmpty)
        {
            UnsafeNativeMethods.ClipCursor(null);
            return;
        }
        NativeMethods.RECT rECT = NativeMethods.RECT.FromXYWH(value.X, value.Y, value.Width, value.Height);
        UnsafeNativeMethods.ClipCursor(ref rECT);
    }
}

这似乎表明通过Rectangle.Empty是正确的答案。

于 2012-07-10T19:49:39.607 回答