Bonjour,
Comment forcer la saisie en majuscule dans une datagrid? et comment limiter la saisie à un seul caractere par case?
merci
Jean
Version imprimable
Bonjour,
Comment forcer la saisie en majuscule dans une datagrid? et comment limiter la saisie à un seul caractere par case?
merci
Jean
quand le datagrid passe en mode edition, il lève un évènement dans lequel on peut obtenir le textbox utilisé
il suffit alors de gérer l'évènement keypress de ce textbox pour faire un toupper et annuler la saisie s'il y a dejà un caractère dans le textbox
Merci! mais je debute en VB...
tu peux m'envoyer la syntax stp?
j'ai trouvé keypress
comment j'appelle la cellule active?
longueur = grille.celluleactive.Lenght()
merci beaucoup!
Jean
je ne parle pas de l'évènement keypress du datagridview, mais de l'évènement du textbox
quand le datagridview passe en mode edition, il affiche un textbox
l'évènement du datagridview est EditingControlShowing
dans e.il y a le control
il suffit de le caster sur la class textbox et de faire un addhandler
si tu est débutant et que tu veux faire des choses un peu poussées, il va surement falloir passer par la lecture de quelques tutos (voir en haut de cette page "tutoriels vb.net"Code:addhandler directcast(e.control,textbox).keypress, addressof le_nom_de_la_sub_dans_laquelle_tu_vas_le_gérer
Merci!
mais je coince quand meme
valeur = Grille.CurrentCell.Value
et la valeur reste a nothing meme avec la saisie de plusieurs caracteres
code ?
j'ai fait un debog, saisi un A, mais la variable valeur reste à NothingCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub test1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles Grille.EditingControlShowing AddHandler DirectCast(e.Control, TextBox).KeyPress, AddressOf testcase End Sub Sub testcase() Dim valeur As String valeur = Grille.CurrentCell.Value End Sub
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub test1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles Grille.EditingControlShowing AddHandler DirectCast(e.Control, TextBox).KeyPress, AddressOf testcase End Sub Sub testcase(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) If DirectCast(sender, TextBox).Text.Length = 1 Then e.KeyChar = CChar("") Exit Sub End If e.KeyChar = Char.ToUpper(e.KeyChar) End Sub