Principales respuestas
C# Cómo cambiar de color a una celda y no a la columna entera de un dataGridView

Pregunta
-
Buenas necesito modificar mi código porque quiero que cuando la columna de stock sea menos o igual que la Cantidad minima que se requiere de un producto esta se ponga en rojo. Aqui les dejo lo que tengo:
int stocky = 0;
Disculpen si no es muy elaborado, además esta en una base de datos en access
Int32.TryParse(txtStock.Text, out stocky);
int cantMinima = 0;
Int32.TryParse(txtCantidadMin.Text, out cantMinima);
if (stocky = cantMinima)
{
dataGridView1.Columns[8].DefaultCellStyle.BackColor = Color.Red;
}
else
{
dataGridView1.Columns[8].DefaultCellStyle.BackColor = Color.Beige;
}
Respuestas
-
Deleted
- Marcado como respuesta Moderador MModerator viernes, 18 de agosto de 2017 16:31
-
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToInt32(row.Cells[9].Value.ToString()) <= Convert.ToInt32(row.Cells[7].Value.ToString()))
row.Cells[9].Style.BackColor = Color.Red;
}
}
Todas las respuestas
-
¿Cuál es el contexto del código que adjuntas?, ¿se encuentra dentro de un handler de evento?
Puedes ocupar el evento 'CellFormatting' para pintar las celdas respecto a una condición, por ejemplo:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if ((sender as DataGridView).Columns[e.ColumnIndex].Name == "NombreColumna") { int cantMinima; if (Int32.TryParse(txtCantidadMin.Text, out cantMinima)) { e.CellStyle.BackColor = Convert.ToInt32(e.Value) <= cantMinima ? Color.Red : (sender as DataGridView).DefaultCellStyle.BackColor; } } }
Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.- Propuesto como respuesta Jorge TurradoMVP sábado, 12 de agosto de 2017 0:25
- Marcado como respuesta Moderador MModerator viernes, 18 de agosto de 2017 16:31
- Desmarcado como respuesta Moderador MModerator martes, 29 de agosto de 2017 17:31
-
Deleted
- Marcado como respuesta Moderador MModerator viernes, 18 de agosto de 2017 16:31
-
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToInt32(row.Cells[9].Value.ToString()) <= Convert.ToInt32(row.Cells[7].Value.ToString()))
row.Cells[9].Style.BackColor = Color.Red;
}
}