Colabora .NET

Resaltar una línea del DataGrid

Permite al usuario tener una mejor visión de lo seleccionado

 

Fecha: 07/Ago/2006 (7-8-2006)
Autor: Sebastian - [email protected]

 


Resalta una línea completa del DataGrid

Cuando se selecciona una celda del DataGrid resalta toda la línea completa.

Antes se debe agregar un textBox (txtConn), un button(btnBind), un dataGrid(dgEmployees) y un label con los name indicados en los paréntesis

Dentro del textBox deberemos colocar nuestra cadena de conexión, en este ejemplo irá con el usuario por default sa

A continuación sigue código en C#:

Evento Click del button

private void btnBind_Click(object sender, System.EventArgs e)
{
	string connStr = txtConn.Text;
	string sqlQuery = "SELECT * FROM Employees";

	DataSet ds = new DataSet();
	SqlConnection conn = new SqlConnection(connStr);
	SqlDataAdapter da = new SqlDataAdapter(sqlQuery, conn);

	try
	{
		da.Fill(ds, "Employees");
	}
	catch(Exception ex)
	{
		MessageBox.Show("No se puede conectar con la base de datos"
			+ "\r\n" + ex.ToString());
		this.Close();
		return;
	}
	finally
	{
		conn.Close();
	}


	DataGridTableStyle tableStyle = new DataGridTableStyle();
	tableStyle.MappingName = "Employees";

	int numeroColumna = ds.Tables["Employees"].Columns.Count;
	ColumnDataGrid columnas;
	for(int i = 0; i < numeroColumna; ++i)
	{
		columnas = new ColumnDataGrid();
		columnas.HeaderText = ds.Tables["Employees"].Columns[i].ColumnName;
		columnas.MappingName = ds.Tables["Employees"].Columns[i].ColumnName;
		tableStyle.GridColumnStyles.Add(columnas);
	}

	dgEmployees.TableStyles.Clear();
	dgEmployees.TableStyles.Add(tableStyle);

	dgEmployees.DataSource = ds.Tables["Employees"];
}

public class ColumnDataGrid : DataGridTextBoxColumn
{
	private int fila = -1;
	protected override void Edit(System.Windows.Forms.CurrencyManager
		origen, int numeroFila, System.Drawing.Rectangle bordes, bool lectura, string
		texto, bool visible)
	{
		if(fila > -1 && fila < origen.List.Count + 1)
			this.DataGridTableStyle.DataGrid.UnSelect(fila);
		fila = numeroFila;
		this.DataGridTableStyle.DataGrid.Select(fila);
	}
}

 

DataGrid funcionando

 


Espacios de nombres usados en el código de este artículo:

System.Data.SqlClient

 


Código de ejemplo (ZIP):

 

Fichero con el código de ejemplo: sebasf_LineaDataGrid.zip - 25 KB

(MD5 checksum: A740607F6FF0246AAEE402405633A2B6)

 


ir al índice principal del Guille