winform窗体内有个panel区域,我想实现的目的是在鼠标在panel区域内无效(主要是禁用左键,右键无所谓)可以看到鼠标移动,或者直接看不到鼠标在panel区域内也行,总之,在panel内禁用左键,panel外不影响
没有头绪,请大家给个思路

解决方案 »

  1.   

    首先你要检测鼠标的位置,这个通过mousemove你能做到。然后在这个区域内。重写左键单击的响应,就可以了吧。
    ok?再不行,让楼下给代码。
      

  2.   

    To 1楼
    刚大概搜索了下这个api函数,它会影响到panel内的光标,其实是我没说清楚了,最主要目的是不想让用户通过鼠标控制panel内部的光标,从而达到只允许程序一步步设定光标移动到哪个控件(焦点在哪个控件上)
      

  3.   

    To zhuton:
    呵呵,这也是个思路,8错8错,看还有没有其他办法,暂时先试试这个方法
      

  4.   

    To 狂刀:呵呵,谢谢,其实这是我以前搞vc的经验而已啦。
      

  5.   


            [DllImport("User32.dll")]
            private static extern void ClipCursor(ref System.Drawing.Rectangle rect);        [DllImport("User32.dll", EntryPoint = "ClipCursor")]
            private static extern void ClipCursorA(ref int i);        [DllImport("User32.dll")]
            private static extern int GetWindowRect(int hwnd, ref System.Drawing.Rectangle rect);        private void button1_Click(object sender, EventArgs e)
            {
                System.Drawing.Rectangle rect = new System.Drawing.Rectangle();
                GetWindowRect(button2.Handle.ToInt32(), ref rect);            ClipCursor(ref rect);
            }        private void button2_Click(object sender, EventArgs e)
            {
                int i = 0;
                ClipCursorA(ref i);
            }
      

  6.   

    To ZengHD:
    我试了你的方法,好象不行,再试试zhuton的方法,一会揭贴