C# convertire il punto del tastierino numerico con la virgola.

di Pacifico437 il
7 risposte
Buongiorno,

In un Form ho 4 TextBox di cui la prima con l'evento KeyPress.
Gradirei che oltre ad accettare solo numeri gradirei che accettasse solo la virgola come decimale anche se dovessi inserire il punto.
Ho usato il seguente codice e non riesco a modificare:

if (System.Text.RegularExpressions.Regex.IsMatch(Txt_Prova.Text, @"^[0-9()]+$") == false)
{
  MessageBox.Show("Il campo Prova contiene caratteri non validi");

Anticipatamente ringrazio, fiducioso di un gradito riscontro, saluto.
Domenico.

7 Risposte

  • Se vuoi la virgola al posto del punto cambialo nel keypress
  • Gent.mo Oregon,

    ringrazio della disponibilità e della tempestività.

    Ho fatto diversi tentativi senza riuscire e so che va inserito nell'evento KeyPress, ho inserito anche il seguente codice;
    
    if (Txt_Prova.KeyChar == '.')
       Txt_Prova.KeyChar = (char)',';
    
    Auguro un buon proseguimento di giornata e saluto.
    Domenico.
  • Nell'evento Keypress devi usare

    e.KeyChar

    non capisco il codice che hai scritto
  • Gli eventi key press vanno bene, ma il focus va a finire all'inizio della riga e a volte contano i tempi di pressione.

    Secondo me è meglio così
    
            private void Txt_Prova_TextChanged(object sender, EventArgs e)
            {
                if (Txt_Prova.Text.EndsWith("."))
                {
                    Txt_Prova.Text = Txt_Prova.Text.Substring(0, Txt_Prova.Text.Length - 1);
                    Txt_Prova.AppendText(",");
                }
            }
    
    Ma il vero motivo di fare questo, quale sarebbe? Perché puoi anche cambiare Culture per far i calcoli
  • Gent.mo Weierstrass,

    mi scuso del ritardo, solo ora ho visto il tuo intervento che non mi è pervenuta nessuna comunicazione via email.
    Ok va bene e oso chiedere se è possibile, inserire il separatore di migliaia. E' per completare per es. 2.560,88.
    Ringrazio della gentilezza. Saluto.
    Domenico.
  • Ma hai risolto o no? Hai letto la mia risposta o no? Hai modificato il codice o no?
  • Gent.mo Oregon,

    al precedente post ho risposto a Weierstrass scusando del ritardo, "Ok va bene" intendevo di aver risolto il problema ed avevo chiesto se era possibile inserire per completare anche il separatore di migliaia.

    Comunque ho risolto il problema e ringrazio della gradita disponibilità.
    Domenico.
Devi accedere o registrarti per scrivere nel forum
7 risposte