Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/01/2012, 16:50
Avatar de drako_darpan
drako_darpan
 
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Problema con DataGridView en C#

Hola que tal, bueno despues de mucho investigar por fin di con una posible solucion .

La primera es generar una clase en la cual se va a controlar el evento del ENTER cambiandolo por TAB.

Aqui se las dejo por si les puede servir:

Código C#:
Ver original
  1. public class UtileriaGrid : DataGridView
  2.     {
  3.         public bool bTeclaEnter = false;
  4.  
  5.         //Convertir [ ENTER ] en [ TAB ]
  6.         protected override bool ProcessDialogKey(Keys keyData)
  7.         {
  8.             if (keyData == Keys.Enter)
  9.             {
  10.                 SendKeys.Send("{TAB}");
  11.                 return true;
  12.             }
  13.             else
  14.             {
  15.                 return base.ProcessDialogKey(keyData);
  16.             }
  17.         }
  18.  
  19.         protected override void OnKeyDown(KeyEventArgs e)
  20.         {
  21.             if ((e.KeyData == Keys.Enter) && !bTeclaEnter)
  22.             {
  23.                 SendKeys.Send("{TAB}");
  24.             }
  25.             else
  26.             {
  27.                 base.OnKeyDown(e);
  28.             }
  29.         }
  30.     }

Esta clase funciona, siempre y cuando ya tengan renglones, pero si ocupan ir anexando con el ENTER no funcionaria por que se cambiaria por TAB

En mi caso no funciona por que ocupo ir anexando renglones .

Despues de mucho investigar en mi dialogo, encontre que se ejecuta 2 veces el metodo CellEnter, por eso es que me incrementa el RowIndex ( La primera vez se posiciona correctamente en el renglon, pero con la segunda vuelta incrementa el RowIndex), pero por mas que le e buscado no e podido hacer que se ejecute 1 sola vez o bien no me incremente el renglon . Asi que a seguir investigando haber como lo puedo solucionar