Foros del Web » Programación para mayores de 30 ;) » .NET »

enter del datagridview

Estas en el tema de enter del datagridview en el foro de .NET en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 12/03/2008, 12:24
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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.
  #2 (permalink)  
Antiguo 12/03/2008, 12:55
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
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
  #3 (permalink)  
Antiguo 12/03/2008, 13:39
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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.
  #4 (permalink)  
Antiguo 12/03/2008, 13:42
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
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
  #5 (permalink)  
Antiguo 12/03/2008, 13:59
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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.
  #6 (permalink)  
Antiguo 12/03/2008, 14:02
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
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
  #7 (permalink)  
Antiguo 12/03/2008, 14:13
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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.
  #8 (permalink)  
Antiguo 12/03/2008, 14:18
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: enter del datagridview

checa q no tengas apuntando el grid en el Keypress al mismo evento

saludos
peter
  #9 (permalink)  
Antiguo 12/03/2008, 14:33
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
Re: enter del datagridview

El evento keypress no tiene nada
  #10 (permalink)  
Antiguo 12/03/2008, 14:40
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: enter del datagridview

no importa no apuntes a ese evento desde tu grid solo hazlo como lo muestro en el ejemplo

saludos
peter
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #11 (permalink)  
Antiguo 12/03/2008, 14:44
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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);
}
}
  #12 (permalink)  
Antiguo 12/03/2008, 14:48
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
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.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #13 (permalink)  
Antiguo 12/03/2008, 14:58
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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)
  #14 (permalink)  
Antiguo 12/03/2008, 14:59
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
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);
}
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #15 (permalink)  
Antiguo 12/03/2008, 15:05
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: enter del datagridview

revisa esta liga te sera util
http://danielisaacs.com/category/c/
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #16 (permalink)  
Antiguo 12/03/2008, 15:13
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
Re: enter del datagridview

No me funciona ese procedimiento.

en ningún momento me muestra el mensaje de "Enter".
  #17 (permalink)  
Antiguo 12/03/2008, 15:21
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
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.
  #18 (permalink)  
Antiguo 13/03/2008, 10:48
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 3 meses
Puntos: 3
Re: enter del datagridview

Hola.

Te agradezco mucho que ayer me contestaras.

Ya resolví el problema.

saludos que estes bien.
  #19 (permalink)  
Antiguo 31/03/2008, 08:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: enter del datagridview

Cita:
Iniciado por Betina232022 Ver Mensaje
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
  #20 (permalink)  
Antiguo 31/03/2008, 08:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: enter del datagridview

Cita:
Iniciado por Peterpay Ver Mensaje
revisa esta liga te sera util
GRACIAS POR REFERIR MI PAGINA, TRATO DE PONER CODIGO QUE PUEDA AYUDAR A LA COMUNIDAD
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:52.