2010-08-11 5 views
0

J'ai une application avec plusieurs formulaires et contrôles dans une fenêtre. L'un d'eux est un contrôle personnalisé qui a deux barres de défilement membres, vertical et horizontal. Maintenant, quand j'appuie sur les touches fléchées du clavier (avec ce contrôle personnalisé sélectionné/in-focus) les barres de défilement obtiennent l'événement Scrollbar.Scroll. Mais j'ai besoin de manipuler les flèches à d'autres fins, seulement la souris pour faire défiler.Comment désactiver le clavier à partir de la barre de défilement dans le contrôle personnalisé

La fonction OnKeyDown du contrôle personnalisé reçoit l'événement uniquement après la mise au point de l'une des deux barres de défilement qui suit le premier trait de touche. Donc, je ne reçois pas la première flèche, ce qui n'est pas bon.

J'ai également essayé d'ajouter un gestionnaire à l'événement Scrollbar.KeyDown. N'a pas fonctionné.

Comment puis-je gérer les flèches pour ne pas faire défiler la vue?

Répondre

0

Essayez l'événement PreviewKeyDown.

Vérifiez-le AVANT d'appuyer sur la touche.

+0

pas de chance, PreviewKeyDown répond également après que la barre de défilement se concentre, ce qui est encore après la première clé! Cependant, je suis en train de faire en sorte que le contrôle de la barre de défilement se concentre sur mes options, sans l'aimer. – kaiserasif

+0

Avez-vous besoin que la barre de défilement soit focalisable? Sinon, vous pouvez le désactiver. – Wildhorn

+0

Je dois faire défiler en utilisant la souris. Donc, ne pouvait pas désactiver. Une correction sur mon commentaire précédent, j'ai utilisé le PreviewKeyDown de la barre de défilement qui est la raison pour laquelle il fallait se concentrer. Le PreviewKeyDown du contrôle personnalisé a fonctionné! Merci. – kaiserasif

3

Vous pouvez essayer une surcharge ProcessDialogKey dans le composant conçu comme suit:

protected override bool ProcessDialogKey(Keys keyData) 
{ 
    return true; 
} 

fonctionne comme un charme.

+0

Vous êtes un génie ... juste ce que je cherchais –

Questions connexes