问题如上,我写了一个新类public class NumericUpDownEx : NumericUpDown我甚至将所有消息都屏蔽了(如下),但是我将鼠标移入NumericUpDown是光标还是发生了变化,为什么?我该怎么做才能彻底把光标改变的消息给屏蔽了?
        protected override void WndProc(ref Message m)
        {
            //base.WndProc(ref m);
        }

解决方案 »

  1.   

    cursor属性改了吗?cursor=default?
      

  2.   

    我不管覆写了OnMouseMove,还是OnMouseEnter,
    Cursor = DefaultCursor;
    但是光标还是会变成输入字符光标。
    最好是通过消息的方式屏蔽,因为我想要的效果就是在VS工程中拖动控件的效果,让他变成Enable=false,但是外观效果保持不变
      

  3.   

    (numericUpDown1.Controls[1] as TextBox).Cursor = System.Windows.Forms.Cursors.Arrow;
      

  4.   

    这是个方法,但是从根本上没有解决消息屏蔽的问题,因为我将鼠标移到upbutton上的话,upbutton会出现按钮变化。    internal class MyMessager : IMessageFilter
        {
            public MyMessager(NumericUpDownEx nud)
            {
                m_NumericUpDownEx = nud;
            }        private NumericUpDownEx m_NumericUpDownEx = null;
            
            //截取消息,进行处理
            public bool PreFilterMessage(ref System.Windows.Forms.Message m)
            {
                if (m.HWnd == m_NumericUpDownEx.Handle)
                    return true;
                foreach (Control c in m_NumericUpDownEx.Controls)
                {
                    if (c.Handle == m.HWnd)
                        return true;
                }
                return false;
            }
        }Application.AddMessageFilter(new MyMessager(this));//在构造函数中在调试中将这个控件的所有内部控件和他自己的消息都屏蔽掉居然鼠标移到这个控件的textbox中鼠标的光标还是会出现变化!