none
Formato Especial para una Columna de un DataGridView

    Question

  • Establecer un formato convencional a una columna de un datagridview:

        dataGridView1.Columns[6].ValueType = typeof(Decimal);
        dataGridView1.Columns[6].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
        dataGridView1.Columns[6].DefaultCellStyle.Format = "N2";

       dataGridView1.Rows[e.RowIndex].Cells[6].Value = 00; me da como resultado (00.00)

    pero cual es la desventja, que cuando yo edite la celda con el formato establecido (00.00) ,tengo que ingresar el numero, el punto y los decimales y darle enter o un tab,para q recien actue el formato y no me parece eso, pero la cuestion es que no se borre el formato cuando edite , tenga que ingresar la parte entera y la parte decimal, mas no el punto porque el punto debe quedar fijo.

    Es decir cuando edite la celda ingresando un numero se ubique en el primer digito de la parte entera derecha y vaya aumentando la cantidad de numero entero q deseo y luego pasarme con la tecla deplazamiento a la parte decimal  e ingresar los decimales correspondiente, parecido a lo que hace el MASKEDTEXBOX tiene  formato  fijo[(_.__), solo puedes ingresar un numero entero y dos decimales, pero la parte entera siempre va a ser variable(entre un digito o mas digitos) , por eso es que no lo utilizo el maskedtexbox].

    Alguna solucion o recomendacion que me puedan brindar, de antemano muchas gracias.


    Saturday, February 25, 2012 5:50 PM

All replies

  • Lo que haría yo es, mediante el evento CellLeave, cuando el foco se vaya de la celda maquetar el número que me hayan dejado tal y como lo quieres. Una cosa como esta: 

    Private Sub migrid_CellLeave(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles migrid.CellLeave
            If e.ColumnIndex = 3 Then 'AQUÍ EL NÚMERO DE LA COLUMNA QUE QUIERES MAQUETAR 
    
                sender.rows(e.RowIndex).cells(e.ColumnIndex).value = String.Format("{0:N2}", CDbl(sender.rows(e.RowIndex).cells(e.ColumnIndex).value))
            End If
        End Sub

    Espero que te sirva.


    Un saludo, Pau

    Wednesday, February 29, 2012 2:35 PM
  • Buenos días.

    Hay algo que no me cierra. ¿Cuál es la diferencia entre precionar la flecha de desplazamiento o un punto (.)? Incluso creo que el punto es mucho más práctico ya que se encuentra en el teclado numérico junto a los demás números.

    No creo que puedas lograr que el punto quede totalmente fijo. Sinceramente el funcionamiento estandar me parece correcto.

    Saludos


    Santiago Ezequiel Rueda
    santiagorueda@live.com.ar
    Blog

    ¡Gadget MSDN Español!

    Entre Ríos
    Argentina

    Saturday, March 03, 2012 4:55 PM