Bonjour,
Dans une appli, je rencontre un petit souci
Je considere que j'ai deux textbox A, B et C
Je veux la chose suivante :
- Quand je rentre une valeur dans A et que je tabule, je veux que B se colore en Darkcyan
- Je rentre une valeur dans B, je veux que
- automatiquement la valeur s'affiche avec 2 chiffres
après la virgule (ex : j'entre 41, l'affichage met 41.00 ou j'entre 41.2 l'affichage met
41.20)
- Si la valeur entrée dans B est inferieure a 36 ou supérieure à 48, j'aie une messagebox
qui me dise "La valeur de B doit être comprise entre 36 et 48, voulez vous forcer la
règle ?
* Si je dis non, focus sur B, effacement de la valeur entrée en B, coloration de B en
Darkcyan
* Si je dis oui, la valeur entrée reste dans la textbox B, la textbox se colore en
vert et le focus passe en C
J'ai fait de code qui foire lamentablement :
Private Sub B_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B.GotFocus
B.BackColor = Color.DarkCyan ' B prends la couleur DarkCyan dés qu'il a le focus (ou des que la valeur prédédante le perd)
End Sub
Private Sub B_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B.Leave
B.Text = B.Text.Replace(".", ",") 'affichage du "."
B.BackColor = Color.LightSlateGray 'B revient à sa couleur initiale a la perte de
focus
B.Text =.valB.ToString("0.00") '2 chiffres après la virgule
If B.Text < 36 Or B.Text > 48 Then
If MessageBox.Show("La valeur B doit être comprise entre 36 et 48, voulez vous forcer la règle ? ", "Valeur incorrecte", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
C.Focus() 'le focus va sur C
B.BackColor = Color.Green 'B se colore en vert
Else
B.Focus() 'le focus revient sur B
B.BackColor = Color.DarkCyan ' B reprend la couleur qu'il a au focus
B.Text = "" 'B affiche la valeur entrée avec 2 chiffres après la virgule
C.BackColor = Color.LightSlateGray 'C garde sa couleur normale
End If
End If
End Sub
Dans ce code, tout fonctionne sauf que :
- Je le trouve compliqué
- J'ai un problème d'affichage des valeurs a 2 chiffres après la virgule (B.Text=.valB.ToString ("0.00") à besoin d'un with/End With)
-
B.Text = "" 'B affiche la valeur entrée avec 2 chiffres après la virgule
ne fonctionne pas
Pourriez vous me suggerer quelque chose de plus "operationnel" ? ou a defaut me dire comment je fais pour les point sombres ?