miércoles, septiembre 05, 2007

Simular un Datagrid Editable en Compact Framework .NET

Bueno en primer lugar el proyecto es un proyecto Smart Device Application y dejamos la forma que por defecto coloca Visual Studio.

Agrego un control DataGrid, un TextBox y un control Button, este control button sera invisible, lo pueden cambiar por una funcion o un procedimeinto, yo lo deje asi, pues parti d eun ejemplo con esxte control.

El control TextBox tambien esta invisible.

El evento Load de la forma lo que hago basicamente es llenar el control DataGrid con un dataTable creado en tiempo de ejecucion, con 10 filas ( de la cero a la diez) y cuatro columnas (de la cero a la tres).

Cada celda de la Grilla se llena con un texto generado tambein dentro del evento load.

Al hacer clic sobre una celda del Datagrid se genera o dispara el evento CurrentCellChanged, en este evento se muestra el textbox y se llena con el valor que se encuentre en la celda seleccionada. Lo mas importante aqui es que tambien se le asignan las dimensiones que tiene la celda al control textbox y se lo coloca en la posicion correcta, la linea de codigo que hace esto es:
.TextBox1.Bounds = dgList.GetCellBounds(dgList.CurrentRowIndex, dgList.CurrentCell.ColumnNumber)

Me

Luego de esto, se coloca el control textBox en visible = true para mostrarlo.

En el evento GotFocus del control TextBox, se selecciona el texto que contenga con el metodo .SelectAll().

Utilizo tambien el evento KeyPress del textbox para verificar si se presiono ENTER, si es asi, llamo al procedimiento Button1_Click , que como dije antes puede ser una funcion o un procedimiento, y oculto el control textbox.

El procedimiento Button_Click, lo que hace es actualizar la celda seleccionada con el valor del textbox.

Por ultimo en el evento GotFocus del Datagrid, verifico si el control textbox esta visible, si es asi, le asigno el Foco al control.

Lo unico que faltaria agregarle seria el control de la posicion del textbox al hacer un desplazamiento con la barra de desplazamiento. Pero eso sera otro dia.

El archivo del proyecto lo pueden encontrar en los archivos en el albun "DataGrid Editable".

Saludos y espero que lo disfruten!!!!.

Publicar un comentario