Da . (Punto) a , (Virgola) in una cella del DataGridView

di il
19 risposte

Da . (Punto) a , (Virgola) in una cella del DataGridView

Salve a tutto il forum, mi servirebbe la seguente informazione:

In una cella di un DataGridView inserisco un importo e lo formatto col simbolo dell' euro e 2 cifre decimali.

per salvare uso l' istruzione

ImportoassegnoTextBox.Select()

e subito dopo la query di Update facendo riferimento alle textbox.

Adesso, si potrebbe fare che scrivo un importo con punto (Esempio - 52.23) e tramite codice me lo converte con la virgola 

(Esempio - 52,23)?

Fatemi sapere.

Grazie

19 Risposte

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Nell'evento di uscita dal textbox usa il metodo Replace 

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Oppure, nell'evento keypress, da associare a tutte le textbox che hanno importi:

    If e.KeyChar = "." Then e.KeyChar = ","

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Il Replace alla fine varrebbe anche per i dati copia-incollati

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Infatti ho scritto “oppure” ma era un ulteriore suggerimento per evitare che su un campo dove deve inserire importi non si possa scrivere “abc”. Anche replace si arrende al copia incolla se incolli “ciao”.

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Andrea, la mia era una precisazione per l'OP non una critica al tuo post.

    Se proprio vogliamo essere precisi, si parla di cambio del punto in virgola e il replace lo fa in tutti i casi, non di validazione dell'input, che non è argomento del thread e non c'entra nulla nella discussione. 

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    27/11/2023 - oregon ha scritto:


    Andrea, la mia era una precisazione per l'OP non una critica al tuo post.

    Se proprio vogliamo essere precisi, si parla di cambio del punto in virgola e il replace lo fa in tutti i casi, non di validazione dell'input, che non è argomento del thread e non c'entra nulla nella discussione. 

    Non l'ho presa come una critica.

    Sollevando il dubbio su copia-incolla 1.237,40 diventerebbe 1,237,40 e 1,237.40 diventerebbe 1,237,40

    Io opterei per una maschera.

    Ed è un consiglio per jekisi.

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    In effetti anche con 

    If e.KeyChar = "." Then e.KeyChar = “,”

    Potresti ritrovarti con 1,237,40

    Io cambierei approccio.

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Ma dato che io faccio, ad esempio, ImportoassegnoTextBox.Select

    e poi eseguo la Query di Update

    Invece di cambiare da . a , nella cella della datagrid, si può fare nella textbox?

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Una maschera di input a valuta.

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

     Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
            If e.KeyChar = "." Then e.KeyChar = ","
        End If
    End Sub

    Così non va, premendo INVIO non succede nulla scrivendo nella text ad esempio 0.55

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    09/12/2023 - jekisi ha scritto:


     Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
            If e.KeyChar = "." Then e.KeyChar = ","
        End If
    End Sub

    Così non va, premendo INVIO non succede nulla scrivendo nella text ad esempio 0.55

    Ma tu riesci a leggere quello che scrivi (o copi da qualche parte)?

    Traduco:

    Se premi invio allora se il tasto premuto è un punto allora il tasto diventa virgola.

    Il codice viene eseguito appena premi invio (in quel componente).

    Scrivi solo 

    If e.KeyChar = "." Then e.KeyChar = “,”

        End If

    In ogni caso sarebbe meglio una maschera.

    Il controllo dei caratteri digitati può essere utile per inibire l'uso di tasti che non siano numerici ad eccezione di invio, punto e virgola.

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    09/12/2023 - sihsandrea ha scritto:


    Scrivi solo 

    If e.KeyChar = "." Then e.KeyChar = “,”

        End If

    Senza End If

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Ok, sulla Textbox funziona, e adesso per fare la stessa cosa su una cella di una rispettiva colonna di un datagridview, come dovrei fare?

  • Re: Da . (Punto) a , (Virgola) in una cella del DataGridView

    Prendi spunto da questo pezzo di codice.Anche se c# dovresti poterlo rendere in vb.net senza problemi e adattare al tuo scopo…

     private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
       DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;
       tb.KeyPress += new KeyPressEventHandler(dataGridViewTextBox_KeyPress);    
       e.Control.KeyPress += new KeyPressEventHandler(dataGridViewTextBox_KeyPress);
    }
        
    private void dataGridViewTextBox_KeyPress(object sender, KeyPressEventArgs e)
    {
       if (e.KeyChar==(char)Keys.Enter)
       {
          MessageBox.Show("You press Enter");
       }
    }
Devi accedere o registrarti per scrivere nel forum
19 risposte