none
solo numeros decimales en datagridview RRS feed

  • Pregunta

  • hola a todos, hace poco se me presento un problema, debía hallar una forma de que un datagridview aceptara números solo en ciertas columnas y de hecho lo encontré.

    pero ahora se me han presentado dos inconveniente con el siguiente código:

               

     private void dgvdetalles_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                if (dgvdetalles.CurrentCell.ColumnIndex==0)
                {
                    TextBox txt = e.Control as TextBox;

                    if (txt !=null)
                    {
                        txt.KeyPress -= new KeyPressEventHandler(dgp);
                        txt.KeyPress += new KeyPressEventHandler(dgp);
                    }
                }
                if (dgvdetalles.CurrentCell.ColumnIndex == 2)
                {
                    TextBox txt = e.Control as TextBox;

                    if (txt!=null)
                    {
                        txt.KeyPress -= new KeyPressEventHandler(dgp);
                        txt.KeyPress += new KeyPressEventHandler(dgp);
                    }
                }
            }

            private void dgp(object sender, KeyPressEventArgs e)
            {

                if (Char.IsNumber(e.KeyChar) || e.KeyChar == (Char)Keys.Back)
                {
                    e.Handled = false;
                }
                else
                    e.Handled = true;

            }

    unos de los inconvenientes es que este código solo acepta números solo enteros y no decimales, ya que el codigo no permite escribir el punto decimal.

    y otro inconveniente es que el sistema llama el método "dgp" a pesar de que las condiciones del método "dgvdetalles_EditingControlShowing" no se cumplen.

    por ello les pido ayuda no se si alguien pueda darme un consejo para sobre pasar este problema.


    • Editado Carlos64 martes, 20 de noviembre de 2012 2:32
    • Cambiado webJoseModerator martes, 20 de noviembre de 2012 3:16 (De:Lenguaje C#)
    martes, 20 de noviembre de 2012 2:26

Respuestas

Todas las respuestas