使用tablelayout面板不会更改标签颜色

时间:2016-06-02 18:31:02

标签: c# label tablelayoutpanel

我有一个TableLayoutPanel,其中许多信息被保存为标签文本对。意思是第一列是标签,第二列是文本框,第三列是等等。我想对列对进行着色以使数据更具可读性。

如果数据是单列对,我可以在普通的Panel中记录TableLayoutPanel,改变它的颜色,我很高兴。但在这种情况下,我希望将数据跨3个列密切关联,以便它们一起滚动。

要按列对表格进行着色,我正在使用CellPaint事件,代码如下。

private void tlpEngParts_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
    {
        Graphics g = e.Graphics;
        Rectangle r = e.CellBounds;
        switch(e.Column)
        {
            case 0:
            case 1:
                g.FillRectangle(Brushes.Orange, r);
                break;
            case 2:
            case 3:
                g.FillRectangle(Brushes.Green, r);
                break;
            case 4:
            case 5:
                g.FillRectangle(Brushes.Red, r);
                break;
        }
    }

但这会使标签全部采用默认的灰色前色。如何让标签的颜色与列颜色相匹配?就像有一个面板背后有一个固定的颜色。

0 个答案:

没有答案