C#中怎样让鼠标的滚轮禁用?不知道有人用过ulgraGrid没,当ultraGrid中的某一列与ultraDropDown绑定,我不想滚动鼠标的滚轮时,其单元格的值也跟变化,请问怎样在让鼠标的滚轮禁用?

解决方案 »

  1.   

    操作注册表在HKEY_CURRENT_USER\Control Panel\Desktop的WheelScrollLines的值4改变就行了,0表示禁止滚轮,1表示打开滚轮
      

  2.   

    应该可以通过调用windowsAPI实现。。
      

  3.   

    你需要用一个自己的类封装一下ultraGrid,然后在自己的类中阻止WM_MOUSEWHEEL消息。
    在封装ultraGrid的类中加这个方法:protected override void WndProc(ref Message m)
    {
        int WM_MOUSEWHEEL = 0x020A;
        if (m.Msg == WM_MOUSEWHEEL)
        {
            return;
        }
        base.WndProc(ref m);
    }
      

  4.   

    就是写一个继承ultraGrid的类。
      

  5.   


    或者SetWindowsHookEx,其实原理都一样,在实现方法里写自己要用的东西,Grid又MouseMove事件吧,设置一个全局变量,用来保存形态,你在事件里判断这个变量就OK了。
      

  6.   

    钩子  屏蔽鼠标滚动  行不?
    或者像8楼所说的  自定义类 继承 ultraGrid , 然后重写它的WndProc 虚方法 , 在其中屏蔽鼠标滚动。。
      

  7.   

     public partial class ExAddHour : Form, IMessageFilter
        {
            public ExAddHour()
            {
                InitializeComponent();
            } private void ExAddHour_Load(object sender, EventArgs e)
            {
                Application.AddMessageFilter(this);
            }
     #region IMessageFilter 成员        public bool PreFilterMessage(ref Message m)
            {
                if (m.Msg == 522) { return true; } else { return false; }
            }        #endregion
    }
    原来用的禁用滚轮的代码
      

  8.   

    Thank all of the above !