Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   enter del datagridview (http://www.forosdelweb.com/f29/enter-del-datagridview-565381/)

Betina232022 12/03/2008 12:24

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. :-)

Peterpay 12/03/2008 12:55

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

Betina232022 12/03/2008 13:39

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. :-)

Peterpay 12/03/2008 13:42

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

Betina232022 12/03/2008 13:59

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.

Peterpay 12/03/2008 14:02

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

Betina232022 12/03/2008 14:13

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.

Peterpay 12/03/2008 14:18

Re: enter del datagridview
 
checa q no tengas apuntando el grid en el Keypress al mismo evento

saludos
peter

Betina232022 12/03/2008 14:33

Re: enter del datagridview
 
El evento keypress no tiene nada

Peterpay 12/03/2008 14:40

Re: enter del datagridview
 
no importa no apuntes a ese evento desde tu grid solo hazlo como lo muestro en el ejemplo

saludos
peter

Betina232022 12/03/2008 14:44

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);
}
}

Peterpay 12/03/2008 14:48

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.

Betina232022 12/03/2008 14:58

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)

Peterpay 12/03/2008 14:59

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);
}

Peterpay 12/03/2008 15:05

Re: enter del datagridview
 
revisa esta liga te sera util
http://danielisaacs.com/category/c/

Betina232022 12/03/2008 15:13

Re: enter del datagridview
 
No me funciona ese procedimiento.

en ningún momento me muestra el mensaje de "Enter".

Betina232022 12/03/2008 15:21

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.

Betina232022 13/03/2008 10:48

Re: enter del datagridview
 
Hola.

Te agradezco mucho que ayer me contestaras.

Ya resolví el problema.

saludos que estes bien. :-)

dzisaacs 31/03/2008 08:09

Re: enter del datagridview
 
Cita:

Iniciado por Betina232022 (Mensaje 2320543)
Ya cheque la liga y no funciona.


Sigue haciendo lo mismo, le doy enter y se desplaza a la siguiente celda.


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

dzisaacs 31/03/2008 08:10

Re: enter del datagridview
 
Cita:

Iniciado por Peterpay (Mensaje 2320512)
revisa esta liga te sera util

GRACIAS POR REFERIR MI PAGINA, TRATO DE PONER CODIGO QUE PUEDA AYUDAR A LA COMUNIDAD


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.