【问题标题】:Colour cells in a TableLayoutPanel with variables during runtime?运行时带有变量的 TableLayoutPanel 中的单元格颜色?
【发布时间】:2013-02-14 10:17:33
【问题描述】:

我目前有一个 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?或者如果是这样,我怎么能在运行时重新着色单元格?

【问题讨论】:

    标签: c# winforms tablelayoutpanel


    【解决方案1】:

    CellPaint 是一个事件,而不是一个方法。我建议您创建一个返回颜色 Brush 的方法 GetColor(int row,int column),然后在 CellPaint 事件中使用 e.Row 和 e.Column 调用您的方法.

    【讨论】:

    • 如果我的程序、方法和事件的主要部分中有 J 和 K,这将如何工作。我不是必须在方法中的某个地方设置 J 和 K 吗?
    • 我相信 J 和 K 是您添加标签的行和列索引。因此,您正在根据行和列索引为单元格着色。在 GetColour 方法中,您将根据 J 和 K(行和列索引)确定要返回的颜色。还是我误会了你?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多