我有两个DataGridView
,第一个包含用户列表,另一个包含颜色。
首先DataGridView
(用户)
第二个DataGridView
(颜色)
通过从第一个DataGridView
中选择一个单元格,该程序允许您将颜色与用户相关联。
使用鼠标右键并选择颜色进行关联。
选择后,使用BackGroundColor
属性,用户的单元格将变为所选颜色的颜色。
现在的问题是我必须允许用户将多种颜色与用户相关联,那么我如何可视化该单元格已与多种颜色相关联?
您对如何实现这一目标有任何想法吗?不幸的是,您无法在Cell
中关联更多颜色,您唯一能做的就是使用渐变,但这对我来说无关紧要。
答案 0 :(得分:1)
您可以通过访问' CellPainting'来实现此目的。 DataGridView上的事件。
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
var temp = sender as DataGridView;
if (temp.ColumnCount > 0 && temp.RowCount > 0)
{
// get the first cell at (0, 0)
var cellposition = dataGridView1.GetCellDisplayRectangle(0, 0, false);
var xStart = cellposition.X;
var yStart = cellposition.Y;
var xEnd = xStart + cellposition.Width / 2;
var yEnd = yStart + cellposition.Height;
for (int i = yStart; i < yEnd; ++i)
{
e.Graphics.DrawLine(new Pen(Color.Black, 1), new Point(xStart, i), new Point(xEnd, i));
}
}
}
此示例代码显示如何在Cell 1上绘制(即第0列,第0行),您可以使用此示例扩展到更多单元格。