2009-11-16 11 views
1

Je veux faire défiler horizontalement dans ma grille (hérité de DataGridView). Pas avec Ctrl + molette de défilement (molette de la souris), mais en poussant la roulette de la souris vers la gauche ou vers la droite. D'abord je l'ai essayé en attrapant le message WM_MOUSEHWHEEL (0x020E) dans WndProc, mais cela ne se déclenche qu'une fois (et je veux continuer à bouger à gauche ou à droite tant que je pousse). J'ai utilisé Spy ++ pour vérifier les messages de mon contrôle, mais n'a trouvé rien d'utile: $ J'ai vérifié la même chose sur une Richtextbox (et le bloc-notes) et il semble qu'il y ait un autre message qui se déclenche: WM_HSCROLL (0x0114).Défilement horizontal dans Datagridview

La zone de texte riche ne défile pas horizontalement en poussant la roue vers la gauche ou la droite, mais je peux attraper le WM_HSCROLL dans la fonction WndProc. Je ne peux pas faire cela dans DataGridView (le message n'arrive pas là). Donc, je me demande s'il y a un moyen de faire fonctionner cette chose?

Cordialement,

TakeItEasy

Répondre

0

Avez-vous essayé avec une barre de défilement horizontale comme un contrôle de santé mentale? Décrit ici: Stack Overflow : Mouse Tilt Wheel

Il se peut également que DataGridView nécessite un focus clavier et que le contrôle RichEdit défile, mais pas le DataGridView.

+0

Salut Brian, d'abord merci pour répondre :) J'oubliais 1 chose: le réglage de la m.Result à (IntPtr) 1. Lorsque je fais cela, les messages continuent de se déclencher. Si je ne le fais pas, le message ne se déclenche qu'une fois. Cordialement, TakeItEasy – TakeItEasy

+0

Le problème est résolu à: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/91589821-27e6-48fc-9330-3b93c5d7245a – TakeItEasy

Questions connexes