C sharp - error en eventhandler

   
Vista:

error en eventhandler

Publicado por eduardo (22 intervenciones) el 05/06/2014 02:17:57
hola :

estoy tratando de agregar este codigo en un datagridview para permitir que solo se ingresen numeros en una columna de un datagrid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void dgvRecaudacion_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
       {
            if (dgvRecaudacion.CurrentCell.ColumnIndex == 1)
            {
 
                TextBox txt = e.Control as TextBox;
 
                if (txt != null) {
                    txt.KeyPress -= new KeyEventHandler(dgvRecaudacion_KeyPress);     *  aca da error
                    txt.KeyPress += new KeyEventHandler(dgvRecaudacion_KeyPress );    *aca da error
                }
 
            }
      }
 
        public void dgvRecaudacion_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsNumber(e.KeyChar) || e.KeyChar == (Char)Keys.Back)
                e.Handled = false;
            else
                e.Handled = true;
 
        }
cuando lo corro me da error en las dos lineas que marque con * en el codigo y en una linea del metodo initializecomponents() que es la siguiente :
this.dgvRecaudacion.KeyPress += new System.Windows.Forms.KeyEventHandler(this.dgvRecaudacion_KeyPress );

en todos los casos el error es :
Error 4 No overload for 'dgvRecaudacion_KeyPress' matches delegate 'System.Windows.Forms.KeyEventHandler'

la verdad , busque en google ayuda , pero no puedo saber que es . gracias por ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error en eventhandler

Publicado por Pico (114 intervenciones) el 05/06/2014 12:18:43
Cómo no va a darte error. Quieres pasarle a un evento KeyDown un delegado KeyPress.

A ver si os aclaráis con el KeyDown y KeyPress. Uno se manda cuando se presiona una tecla, la que sea, y el otro cuando se produce un código ascii "imprimible" al presionar una tecla.

KeyPress espera un delegado KeyPressEventHandler, y tú le pasas un KeyEventHandler, que es el delegado que esperaría un KeyDown.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar