我有一个 TableLayoutPanel 目前有多行 + 列。它由一个 for 循环填充,每次运行时都会有所不同,具体取决于 SQL 查询的输出。
void tblTableLayoutPanel_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
{
if (e.Row == 2 || e.Row == 4)
{
Graphics g = e.Graphics;
Rectangle r = e.CellBounds;
g.FillRectangle(Brushes.Red, r);
}
}
这是我目前为单个行着色的代码,但我希望能够根据 2 个变量(J 和 K)为单个单元格着色。
TableLayoutPanel.Controls.Add(label, J, K);
同样,这里是我如何使用 J 和 K 向 TableLayoutPanel 中的单元格添加标签的示例。是否可以重载 CellPaint 方法以允许在其中使用 J 和 K?或者如果是这样,我怎么能在运行时重新着色单元格?
我之前问过这个问题并得到了以下解决方案;
CellPaint 是一个事件而不是方法。我建议您创建一个返回颜色画笔的 GetColor(int row,int column) 方法,然后在 CellPaint 事件中使用 e.Row 和 e.Column 调用您的方法。
我不完全确定这将如何工作,因为我正在使用的变量在主程序中,然后我不需要将这些与我的方法中的变量进行比较吗?或将它们设置在某个地方进行比较,然后再进行事件。任何人都可以为我解释清楚一点吗?或者给我一个例子?谢谢。