Добавить клавишу-модификатор для прокрутки вкладки - PullRequest
0 голосов
/ 23 сентября 2011

Можно ли добавить клавишу-модификатор (например, Ctrl) к колесу прокрутки мыши на tabPage?

РЕДАКТИРОВАТЬ:

Потому чтоУ меня есть элементы управления на tabPage, которые требуют использования колесика мыши, я бы хотел добавить клавишу-модификатор к прокрутке колесика мыши на tabPage.Таким образом, пользователь сможет играть с элементами управления с помощью колесика мыши и сможет прокручивать вниз или вверх tabPage, используя Ctrl + колесико мыши.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

Единственный способ сделать это - наследовать от TabPage и обработать событие WM_MOUSEWHEEL:

public class MyTabPageHandlingCTRL : System.Windows.Forms.TabPage
{
    const int WM_MOUSEWHEEL = 0x20A;

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {

        if (m.HWnd != this.Handle)
            return;
        if (m.Msg == WM_MOUSEWHEEL && 
            (Control.ModifierKeys & Keys.Control) != Keys.Control)
        {
            return; // don't propagate the event
        }
        base.WndProc(ref m);
    }
}

Конечно, в вашем TabControl.TabPages вы должны добавить MyTabPageHandlingCTRL вместо простого TabPage.

0 голосов
/ 23 сентября 2011

вы собираетесь определять, когда прокручивается мышь, и удерживая Ctrl, вы хотите рассматривать их как изменение табуляции?

создать 3 обработки событий для прокрутки мыши и нажатия клавиши, события keyup.на флаге, когда Ctrl не работает.отмените флаг, когда эта клавиша поднята, когда срабатывание события прокрутки мыши обнаружит, включен ли флаг, затем сделайте свой трюк.

...