1、需求:
DataGridView中要把用户输入的数据标成黄色,提示这些格子用户需要自行输入数据
2、实现:
绑定DataGridView的CellFormatting事件
由于用户的模板是excel,为了简单,用List嵌套表示行列,第一层是列,第二层是行。标号是背景为黄色的单元格行数。
this.dgvMid.CellFormatting += this.DrawFristMidColor;
private void DrawFristMidColor(object sender,object e)
{
DataGridView dgv = sender as DataGridView;
// 设置用户输入的单元格的背景颜色
List<List<int>> bpos = new List<List<int>>
{
new List<int>(),
new List<int>(),
new List<int>(),
new List<int>(),
new List<int>(),
new List<int>(),
new List<int>(),
new List<int> { 3, 4, 5, 16, 36, 58, 80, 83, 85, 89, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113 },
new List<int>()
};
var tem = new List<int>();
for (int i = 3; i <= 117; i++)
{
switch (i)
{
case 18:
case 34:
case 40:
case 72:
case 86:
case 93:
case 96:
case 116:
break;
default:
tem.Add(i);
break;
}
}
bpos.Add(tem);
bpos.Add(tem);
bpos.Add(tem);
bpos.Add(tem);
for (int col = 0; col < bpos.Count; col++)
{
for (int row = 0; row < bpos[col].Count; row++)
{
dgv.Rows[bpos[col][row]-2].Cells[col].Style.BackColor = Color.Yellow;
}
}
}
实现结果
还可以参考一个视频
/