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 End Sub Private Sub B_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B.LostFocus B.Text = B.Text.Replace(".", ",") 'affichage du "." B.BackColor = Color.LightSlateGray 'B revient à sa couleur initiale dim valeur as double = Convert.Todouble(B.Text) ' variable NUMERIQUE B.Text = valeur.ToString("0.00") '2 chiffres après la virgule If valeur < 36 Or valeur > 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 C.BackColor = Color.LightSlateGray 'C garde sa couleur normale B.BackColor = Color.DarkCyan ' B reprend la couleur qu'il a au focus B.Text = "" ' on efface B car on ne force pas la règle B.Focus() 'le focus revient sur B End If End If End Sub
Private Sub TextBoxA_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBoxA.LostFocus If TypeOf sender Is TextBox Then TextBoxB.BackColor = Color.Cyan End If End Sub Private Sub TextBoxB_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBoxB.LostFocus Dim valeurdecimal As Double Dim result As DialogResult If TypeOf sender Is TextBox Then If Double.TryParse(DirectCast(sender, TextBox).Text, valeurdecimal) Then DirectCast(sender, TextBox).Text = valeurdecimal.ToString("0.00") If valeurdecimal < 36 Or valeurdecimal > 48 Then result = MessageBox.Show("la valeur doit etre comprise entre 36 et 48 continuer ?", "attention", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) If result = Windows.Forms.DialogResult.No Then DirectCast(sender, TextBox).Text = String.Empty DirectCast(sender, TextBox).Focus() Else DirectCast(sender, TextBox).BackColor = Color.Green TextBoxC.Focus() End If End If Else result = MessageBox.Show("valeur numérique seulement", "attention", MessageBoxButtons.OK, MessageBoxIcon.Error) DirectCast(sender, TextBox).Text = String.Empty DirectCast(sender, TextBox).Focus() End If End If End Sub End Class
B.Text = ""ca me dit : la conversion de la caine "" en type double n'est pas valide. J'avoue ne pas comprendre grand chose a ces problemes de conversions
Je rentre une valeur dans B, je veux que
- automatiquement la valeur s'affiche avec 2 chiffres
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question