Bonjour.
J'ai une datagridview (dgv) qui contient des colonnes de type CalendarColumn (le code qu'on trouve sur msdn ici)
Je souhaite récupérer l'evenement de KeyDown Tab (KeyCode = 9 donc), sachant que ma datagridview est éditable OnEnter (dès qu'on clique sur un cellule). Ceci n'étant pas possible directement par Dgv.KeyDown en mode édition, il faut passer par des moyens détournés.
J'ai exploré plusieurs pistes mais aucune ne marche pas pour le moment.
Celle ci m'avait l'air fonctionnelle notamment.
1 2 3 4 5 6 7 8 9 10
|
Private Sub DataGridView2_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView2.EditingControlShowing
Dim textBoxCell As DatePicker = TryCast(e.Control, DatePicker)
If textBoxCell IsNot Nothing Then
AddHandler textBoxCell.KeyDown, AddressOf textBoxCell_KeyPress
End If
End Sub
Private Sub textBoxCell_KeyPress(ByVal sender As Object, ByVal e As KeyEventArgs)
MessageBox.Show(e.KeyCode)
End Sub |
Premier problème, je n'arrive pas à connaitre le type de la cellule. pour une cellule normale, on aurait
Dim textBoxCell As TextBox = TryCast(e.Control, TextBox)
J'ai essayé DatePicker (la classe introduite par msdn) et d'autres, mais l'evenement keypress n'est jamais activé.
Ensuite, il semblerait que la touche TAB ne soit jamais "capturée" par KeyDown KeyPress ou KeyUp. Y'a t'il un moyen détourné de le faire?
Merci
Partager