2009-11-16 4 views
1

Я хочу прокручивать по горизонтали в моей сетке (унаследованной от DataGridView). Не с нажатием Ctrl + прокручиваемое колесико (колесиком мыши), а нажатием колесика мыши влево или вправо.Горизонтальная прокрутка в Datagridview

Сначала я попробовал это, поймав сообщение WM_MOUSEHWHEEL (0x020E) в WndProc, но это срабатывает только один раз (и я хочу продолжать двигаться влево или вправо, пока я нажимаю).

Я использовал Spy ++ для проверки сообщений своего элемента управления, но не нашел ничего полезного: $ Я проверил то же самое на Richtextbox (и блокноте), и кажется, что есть еще одно сообщение, которое срабатывает: WM_HSCROLL (0x0114).

Богатый текст не прокручивается по горизонтали, нажимая колесо влево или вправо, но я могу поймать WM_HSCROLL в функции WndProc. Я не могу сделать это в DataGridView (сообщение не приходит туда).

Так что мне интересно, есть ли способ заставить эту работу работать?

С уважением,

TakeItEasy

ответ

0

Вы пробовали его с горизонтальной полосой прокрутки в качестве проверки вменяемости? Описанное здесь: Stack Overflow : Mouse Tilt Wheel

Также может быть, что DataGridView требует фокуса клавиатуры, поэтому элемент управления RichEdit прокручивается, но DataGridView этого не делает.

+0

Привет Брайан, Прежде всего спасибо за ответ :) Я забыл 1 вещь: установка m.Result к (IntPtr) 1. Когда я это делаю, сообщения продолжают стрелять. Если сообщение не срабатывает, сообщение срабатывает только один раз. Привет, TakeItEasy – TakeItEasy

+0

Задача решается на: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/91589821-27e6-48fc-9330-3b93c5d7245a – TakeItEasy

Смежные вопросы