Datagridview

30/07/2007 - 15:23 por William Rivera | Informe spam
Buenas

Soy nuevo en VS y en c#. Quisiera saber como puedo hacer para que un ROW
de mi datagridview se ponga en rojo basado en que si en la columna de
cantidad es menos que 5.

estoy lebantando la data de un sql con el dataAdapter y un dataset que a
su ves llena el datagridview

ademas quisiera porder leer una celda de el row que esta sombreado por
ejemplo cantidar de productos en la en el row que esta sombreado


Gracias de ante mano



William Rivera
 

Leer las respuestas

#1 Luis Miguel Blanco
30/07/2007 - 20:18 | Informe spam
Hola William

Para la primera de las dos cuestiones que planteas, puedes utilizar el
evento CellFormatting del DataGridView, dentro de cuyo código compruebas la
columna que se va a mostrar, y en el caso de que sea la que necesitas,
compruebas la condición en función del valor del campo a mostrar. Si se
cumple, cambias el color de fondo de la fila entera utilizando la colección
DataGridView.Rows y el parámetro DataGridViewCellFormattingEventArgs que
recibe el evento, más en concreto, la propiedad RowIndex. La forma de asignar
el color a la fila pasa por manipular su estilo, a través de la propiedad
DefaultCellStyle.BackColor, como puedes ver en el siguiente bloque de código:

//
private void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
if (this.dataGridView1.Columns[e.ColumnIndex].Name == "UnitsInStock")
{
if ((short)e.Value == 10)
{
this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor =
Color.Red;
}
}
}
//

En cuanto a obtener el valor de una celda correspondiente a la fila en la
que has cambiado el color, una forma consistiría en recorrer la colección de
filas del grid, y comprobar en el estilo de cada fila, el color que tiene,
cuando sea el que has asignado, obtienes el valor de una celda utilizando la
colección Cells de la fila, como puedes ver en el siguiente ejemplo:

//

private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow fila in this.dataGridView1.Rows)
{
if (fila.DefaultCellStyle.BackColor == Color.Red)
{
string NombreProducto =
fila.Cells["ProductName"].Value.ToString();
}
}
}
//

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"William Rivera" wrote:

Buenas

Soy nuevo en VS y en c#. Quisiera saber como puedo hacer para que un ROW
de mi datagridview se ponga en rojo basado en que si en la columna de
cantidad es menos que 5.

estoy lebantando la data de un sql con el dataAdapter y un dataset que a
su ves llena el datagridview

ademas quisiera porder leer una celda de el row que esta sombreado por
ejemplo cantidar de productos en la en el row que esta sombreado


Gracias de ante mano



William Rivera







Preguntas similares