domingo, 26 de agosto de 2007

HOW TO: COMO CREAR UN DATAGRIDVIEW PERSONALIZADO

Muchas de las veces necesitamos personalizar un control como en mi caso personalizar un DataGridView para utilizarlo de alguna manera media rara como por ejemplo añadirle un botón (Button) a todas las casillas de la columna 1 de la grilla, pues bien este es el código:

Para que sea mas fácil entender, arrastra un DataGridView al formulario luego presiona F7 para escribir el código.

Inicializamos estas variables:

DataGridViewButtonColumn columna0;

DataGridViewTextBoxColumn columna1;


Podemos crear un método que diga algo por ejemplo CargarColumnas, el cual recibirá un DataSet con la información que deseamos cargar algo como la siguiente fracción de código.

public void CargarColumnas(DataSet objDataSet)
{
columna0 = new DataGridViewButtonColumn();

columna0.Name = "Eliminar"; //este es el identificador del Button

columna0.Text = "Botón Eliminar"; //este es el label del button
//Esta línea carga la columna “Eliminar” del DataSet

columna0.DataPropertyName = "Eliminar";

columna1 = new DataGridViewTextBoxColumn();

columna1.Name = "Cantidad";

columna1.HeaderText = "Cantidad";

//Esta línea carga la columna “Cantidad” del DataSet a la columna del DataGrid

columna1.DataPropertyName = "Cantidad";

//añadimos las columnas al datagridview

DataGridView1.Columns.AddRange(

new DataGridViewColumn[] {columna0, columna1} );

//asignamos el dataset
DataGridView1.DataSource = _DataSet.Tables[0];

}


Ten cuidado al asignar el DataSet si lo colocas de esta manera


“DataGridView1.DataSource = _DataSet.Tables[0];”


“columna0 = new DataGridViewButtonColumn();”


esto hará que se cargue el DataSet en la grilla y seguido de eso vuelva a cargar los datos para cada una de las columnas que tu creaste por medio de código


Eso es todo y de allí ya el trabajo es un poquito mas fácil, en sustituto del Botón puedes usar CheckBox, links y otros mas.

1 comentario:

rc dijo...

Saludos
Gracias por la informacion, fue muy util para el trabajo que estoy realizando!

muy agradecido! :):):):):):)!

 
Made in Loja, Ecuador