Bonjour Whismeril,
Merci pour les conseils,
Avec ce code un seul point ou virgule s'affiche, mais je ne trouve pas comment coder si une virgule est déjà présente ne pas afficher le point et vise versa.
Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Not IsNumeric(e.KeyChar) AndAlso e.KeyChar <> vbBack AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "," Then e.Handled = True End If If (e.KeyChar = ".") AndAlso ((TryCast(sender, TextBox)).Text.IndexOf(".") > -1) Then e.Handled = True End If If (e.KeyChar = ",") AndAlso ((TryCast(sender, TextBox)).Text.IndexOf(",") > -1) Then e.Handled = True End If End Sub
Convert.ToChar(8) fonctionne, je peux de nouveau utiliser la touche DEL, Merci à vous.
Bonjour
Tu fais un second if, dans lequel tu testes si e.KeyChar est un point ou une virgule et s'il y a déjà un point ou une virgule dans le texte de la textbox, si oui tu sors de la même manière.
Tu pourrais présenter ça sous la forme d'un select case.
Case de 0 à 9, on ne fait rien
Case vbBack, on ne fait rien
Case , ou . on teste si c'est déjà présent, si oui Handle = true, sinon rien
Case tout le reste, Handle = true
Jusqu'à présent je n'utilisais pas select case, mais je vois que c'est bien utile, merci pour votre code " qui me permet dans apprendre un peu plus" sinon sur votre code j'ai vbBack surligné en rouge, "conversion implicite de string en Char", j'ai supprimé vbBack et le code fonctionne, mais la touche DEL ne fonctionne plus "pour info la touche supprime fonctionne" .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionHa ben ça c'est étonnant, puisque tu utilisais déjà vbBack...
Essaye Convert.ToChar(8) à la place.
La touche suppr n.est pas interceptée par le KeyPress, mais par le KeyDown
De rien
En fait non, pas de rien.
En février 2021, https://codes-sources.commentcamarche.net/forum/affich-10104592-cherche-solution-pour-avoir-moins-de-if#5 je t'ai conseillé de suivre le cours de Tahé.
Ce qui prend quelques jours et permet d'apprendre les bases de VB.Net, dont Select Case et Contains, la difference entre KeyDown et KeyPress
Donc si tu avais pris ces quelques jours il y a un an et demi, normalement tu ne devrais plus mal connaître ces bases voire ne plus poser ce type de question depuis un an et demi.
Bonjour Whismeril,
Les lectures que vous m'avez conseillé ont été utiles et j'ai compris/appris beaucoup, mais certaine forme de codage me semble plus obscure tel que Select case, le vb.net est bien plus complexe qu'il n'y parait.
Pourtant, un Select Case (ou switch dans plusieurs autres langages) est un instruction de base, il y a bien plus complexe.
15 août 2022 à 12:16
Pourquoi me remercier pour des conseils que tu n'appliques pas?
Je t'ai dis qu'en le présentant avec un Select case, se serait plus lisible, et donc plus simple à comprendre et corriger.
En plus pour savoir si une string contient un caractère, il y a la méthode Contains.
PS, il faut choisir BASIC pour la coloration, sinon ça fait un pavé tout gris comme tu avais avant que je corrige.