如何根据textbox2中的值突出显示数据网格行?
最终,当在第2列中找到匹配值时,对应行上的QTY字段(第3列)将需要为最终用户扫描的每个QR码更改-1。一旦QTY值达到0,该行将需要突出显示为绿色。
我不能让它上班已经尝试了几种不同的方式编写foreach部分但没有运气
我的代码如下:
http://myhost.com/
答案 0 :(得分:0)
您可以在该行的所有单元格中执行循环,并设置单元格样式属性。您可以为非选定行和选定行创建不同的样式,然后根据需要应用这些样式。
示例:
DataGridViewCellStyle selectedStyle = new DataGridViewCellStyle();
selectedStyle.BackColor = Color.LemonChiffon;
selectedStyle.ForeColor = Color.OrangeRed;
DataGridViewCellStyle defaultStyle = new DataGridViewCellStyle();
defaultStyle.BackColor = System.Drawing.Color.White;
defaultStyle.ForeColor = Control.DefaultForeColor;
foreach (DataGridViewRow row in iCBOMHDataGridView.Rows)
{
if ((string)row.Cells[2].Value == textBox2.Text)
{
row.Selected = true;
if(Decimal.Parse(row.Cells[3].Value.ToString()) > 0)
row.Cells[2].Value = Decimal.Parse(row.Cells[2].Value.ToString()) - 1;
}
if (Decimal.Parse(row.Cells[3].Value.ToString()) <= 0)
{
foreach (DataGridViewCell col in row.Cells.AsParallel())
col.Style = selectedStyle;
}
else
{
foreach (DataGridViewCell col in row.Cells.AsParallel())
col.Style = defaultStyle;
}
}
如果您不想遍历单元格,只需更改每行的 DataRow.DefaultCellStyle 属性即可。但这会限制您的自定义选项。