RichTextBox и отключение прокрутки мышью - PullRequest
0 голосов
/ 29 августа 2010

Я хочу использовать среднюю кнопку мыши, чтобы очистить RichTextBox, но он также активирует функцию прокрутки мыши, аналогичную той, что вы найдете в веб-браузерах.Когда вертикальная полоса прокрутки видна (данных достаточно) и вы нажимаете среднюю кнопку мыши, появляется курсор прокрутки, и вы можете перемещаться вверх или вниз, перемещая курсор вверх или вниз.Как отключить прокрутку мыши?

Кажется, что прокрутка мыши - это функция Windows (или драйвера мыши), так как я могу остановить событие MouseDown (если нажата средняя кнопка мыши) для достижения любой подпрограммы?ответственность за прокрутку мыши?

Ответы [ 2 ]

1 голос
/ 29 августа 2010

Проверка для 0x207 и 0x208, средняя кнопка вниз и вверх:

using System;
using System.Windows.Forms;

class MyRtb : RichTextBox {
    protected override void WndProc(ref Message m) {
        if (m.Msg == 0x207) this.Clear();
        else if (m.Msg != 0x208) base.WndProc(ref m);
    }
}
1 голос
/ 29 августа 2010

Нет прокрутки RichTextBox, просто наследуйте от RichTextBox и все готово.

public class NoScrollRichTextBox : RichTextBox
{
   const int WM_MOUSEWHEEL = 0x020A;

   protected override void WndProc(ref Message m)
   {
      // This will completely ignore the mouse wheel, which will disable zooming as well
      if (m.Msg != WM_MOUSEWHEEL)
         base.WndProc(ref m);
   }
}
...