[VB.NET] Virgule Textbox

Résolu
Bonjour à toutes et à tous,

Dans mes précédents poste je tournais avec VBA, je suis passé en VB.net sous VS2010express.

J'ai plus ou moins assez rapidement retrouvé mes repères de VBA sauf pour une chose.

A l'aide d'internet, j'ai réussi a créer une classe numerictextbox, il s'agit donc de textbox exclusivement numérique.

J'ai ensuite paramétré le nombre max de caractère dans chacune de mes box

Ce que je n'arrive pas a faire c'est de limiter la virgule à une seule!!

Actuellement je peux en mettre 2 ou 3 dans ma box si je le souhaite ce qui ne m'arrange pas.

Quelqu'un aurait une idée de code pour régler ca?

==> limiter la saisie de une seule virgule dans la textbox et donc annulée les saisie qui surviendraient après qu'une virgule ait déjà été introduite.

Merci d'avance

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    tu peut le gerer dans l'evenement KeyPress avec un code comme celui la tu peut l'ameliorer car la je le fais rapidement en C# mais bon la syntaxe et assez ressemblante a VB.net pour cet exemple

      if(e.KeyChar == ',')
                {
                    if(textBox1.Text.Contains(","))
                    {
                        e.Handled = true;
                    }
                }
    
    1. Ca marche nickel nico, merci.

      Je poste ma solution complète qui permet de remplacer le point par la virgule et de n'autorisée la saisie que de 1 seule virgule dans la TXTbox

      Private Sub NumericTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles NumericTextBox1.KeyPress

      'Remplace le point par une virgule

      If Asc(e.KeyChar) = 46 Then e.KeyChar = ","
      If Asc(e.KeyChar) = 44 And (CType(sender, TextBox).Text.IndexOf(",") > 0 Or CType(sender, TextBox).Text = "") Then e.Handled = False
      NumericTextBox1.MaxLength = 8

      'N'autorise qu'une seule virgule dans la box

      If (e.KeyChar = ",") Then If (NumericTextBox1.Text.Contains(",")) Then e.Handled = True

      End Sub