yinzhm 发表于 2014-7-30 09:36:00

鼠标滚轮MouseWheel按下后的动作

鼠标滚轮滚动的动作没有问题。

但是鼠标滚轮的Click动作,MultiRow上会出现一个移动的标记,这时移动鼠标multirow的当前视图会移动。

有办法就用掉吗?拦截不掉啊!

dafo 发表于 2014-7-30 14:19:00

MultiRow没有接口可以关闭滚轮Click动作,这是标准Grid的一个系统行为。
一个方案是在MultiRow的WndProc中捕获相关Window消息来处理,请参考下边代码:

    public class MyGcMultiRow : GcMultiRow
    {
      const int WM_MBUTTONDOWN = 0x0207;
      const int WM_MBUTTONDBLCLK = 0x0209;
      protected override void WndProc(ref Message m)
      {
            if (m.Msg == WM_MBUTTONDOWN || m.Msg == WM_MBUTTONDBLCLK)
            {
                Console.WriteLine("WM_MBUTTONDOWN");
                return;
            }
            base.WndProc(ref m);
      }
    }

yinzhm 发表于 2014-7-30 18:52:00

回复 2楼dafo的帖子

明白了!
非常感谢!

Alice 发表于 2014-7-31 08:55:00

回复 3楼yinzhm的帖子

不客气。

ronglingieo 发表于 2014-8-25 10:50:00

写的不错,顶一个!

Alice 发表于 2014-8-25 15:23:00

回复 5楼ronglingieo的帖子

有问题欢迎交流。
页: [1]
查看完整版本: 鼠标滚轮MouseWheel按下后的动作