我可以为TableLayoutPanel中的整个行或列添加特定颜色吗? 怎么样 ?如果有的话请提供示例代码..
先谢谢。
答案 0 :(得分:21)
是的,你可以。
使用TableLayoutPanel的CellPaint事件来测试哪个行/列调用了事件,然后使用Graphic对象大小来设置矩形以设置单元格的颜色。
像这样(第一行和第三行):
private void Form_Load(object sender, EventArgs e) {
this.tableLayoutPanel1.CellPaint += new TableLayoutCellPaintEventHandler(tableLayoutPanel1_CellPaint);
}
void tableLayoutPanel1_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
{
if (e.Row == 0 || e.Row == 2) {
Graphics g = e.Graphics;
Rectangle r = e.CellBounds;
g.FillRectangle(Brushes.Blue, r);
}
}
答案 1 :(得分:5)
我发现这个答案更容易实现:
这让我可以在我的手机上放一个完整的背景色。
Panel
,其背景颜色为Dock
<{1}} Panel
TableLayoutPanel
醇>
然后TableLayoutPanel
Cell有一个
背景色。
我的代码最终看起来像这样:
Panel backgroundColorPanel = new Panel();
backgroundColorPanel.BackColor = Color.FromArgb(243, 243, 243);
backgroundColorPanel.Dock = DockStyle.Fill;
backgroundColorPanel.Margin = new Padding(0);
backgroundColorPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left));
backgroundColorPanel.AutoSize = true;
backgroundColorPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.originalTableLayoutPanel.Controls.Add(backgroundColorPanel, 0, row);