![]() |
enter del datagridview Hola, espero que esten bien. Tengo un datagridview con varias filas, y quiero que al seleccionar alguna y precionar enter se ejecute un procedimiento X, pero no me toma el indice de la fila seleccionada, toma uno más, osea selecciono la fila 1 y al hacer el procedimiento aparecen los datos de la fila 2. espero me puedan ayudar, gracias. :-) |
Re: enter del datagridview lo q pasa es q tu enter lo esta capturando el grid y te cambia a la siguiente celda lo que deberias hacer es el evento del EditingControlShowing para la celda en particulara q disparara el evento crearle un eventhandler para el enter y antes de procesarlo q invoque a tu metodo X. algo asi private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if(dataGridView1.CurrentCell.ColumnIndex==indicede seado) ((DataGridViewTextBoxEditingControl)(e.Control)).K eyDown += new KeyEventHandler(Form1_KeyDown); } void Form1_KeyDown(object sender, KeyEventArgs e) { if ((int)e.KeyCode == (int)Keys.Enter) { //aqui llama metodo X base.OnKeyDown(e); } } saludos peter |
Re: enter del datagridview Hola, gracias por contestar. Soy nueva en esto del .net, estoy programando en C#, y no entiendo muy bien lo que me pones como respuesta. Todas las celdas del datagridview tienen que irse al mismo procedimiento pero lo que se visualiza son los datos según la celda que se selecciono. Hay alguna forma para que cuando se de enter no de un salto de línea y me tome una de más? Gracias otra vez. :-) |
Re: enter del datagridview todas las celdas cuando entran en modo de edicion van al mismo evento, pero por eso especificas q celda debe actuar a ese evento. si es la ultima celda de tu edicion pues lo puedes hacer asi. bueno q hace tu metodo X ayudara a definir una mejor solucion. saludos peter |
Re: enter del datagridview En el datagrid muestro los datos de una tabla (la base de datos esta en access) Al seleccionar alguna celda se tiene que ir a un procedimiento donde hago una consulta y saco solo los subtemas de la celda que tiene el foco, y ahi es donde me visualiza la información de una celda más. para sacar el indice que tiene el foco pongo: vgIndex = this.dataGridViewTemas.CurrentCell.RowIndex; Tengo un procedimiento del keypress donde comparo que tecla se presiono: private void Tecla13(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { AceptarTemasDis_Click(null,null); } } Espero que me haya explicado bien. |
Re: enter del datagridview entonces ncesitas llamar a Aceptar temas en el codigo q te di anteriormente si es cualquier celda vailda para invocar en base al vgiindex private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ((DataGridViewTextBoxEditingControl)(e.Control)).K eyDown += new KeyEventHandler(Form1_KeyDown); } void Form1_KeyDown(object sender, KeyEventArgs e) { if ((int)e.KeyCode == (int)Keys.Enter) { AceptarTemasDis_Click(null,null); //aqui llama metodo X base.OnKeyDown(e); } } prueba esto y dime si te funciono como esperabas. saludos peter |
Re: enter del datagridview Ya lo probee y no se va al procedimiento de Aceptar, cada vez que doy enter se desplaza a la siguiente celda. |
Re: enter del datagridview checa q no tengas apuntando el grid en el Keypress al mismo evento saludos peter |
Re: enter del datagridview El evento keypress no tiene nada |
Re: enter del datagridview no importa no apuntes a ese evento desde tu grid solo hazlo como lo muestro en el ejemplo saludos peter |
Re: enter del datagridview Ya lo hice, y solo se desplaza hacia abajo del grid, a menos que haya echo algo mal. este es el código que puse: private void EDS(object sender, DataGridViewEditingControlShowingEventArgs e) { e.Control.KeyDown += new KeyEventHandler(Form1_KeyDown); } public void Form1_KeyDown(object sender, KeyEventArgs e) { if ((int)e.KeyCode == (int)Keys.Enter) { AceptarTemasDis_Click(null, null); base.OnKeyDown(e); } } |
Re: enter del datagridview lo estas debuggeando??, digo porq a mi si me funciona primero que nada mostrar un enter antes de cambiar de celda. |
Re: enter del datagridview En que momento se manda llamar? Le puse un punto de interrupción y nunca entra en el procedimiento Form1_KeyDown(object sender, KeyEventArgs e) |
Re: enter del datagridview Prueba esto sorry. private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { e.Control.KeyUp += new KeyEventHandler(Control_KeyUp); } void Control_KeyUp(object sender, KeyEventArgs e) { if ((int)e.KeyValue == (int)Keys.Enter) { MessageBox.Show("ENTER"); //base.OnKeyPress(e); } } private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { dataGridView1.BeginEdit(false); } |
Re: enter del datagridview revisa esta liga te sera util http://danielisaacs.com/category/c/ |
Re: enter del datagridview No me funciona ese procedimiento. en ningún momento me muestra el mensaje de "Enter". |
Re: enter del datagridview Ya cheque la liga y no funciona. Sigue haciendo lo mismo, le doy enter y se desplaza a la siguiente celda. |
Re: enter del datagridview Hola. Te agradezco mucho que ayer me contestaras. Ya resolví el problema. saludos que estes bien. :-) |
Re: enter del datagridview Cita:
HOla, yo soy el que escribe en la liga que no te funciona te exhorto a que la busques de nuevo, bajes el codigo que he puesto, y creeme que eso funciona gracias |
Re: enter del datagridview Cita:
|
| La zona horaria es GMT -6. Ahora son las 08:49. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.