Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms TableLayoutPanel的行/列着色(vs2008,winform)_Winforms_Visual Studio 2008 - Fatal编程技术网

Winforms TableLayoutPanel的行/列着色(vs2008,winform)

Winforms TableLayoutPanel的行/列着色(vs2008,winform),winforms,visual-studio-2008,Winforms,Visual Studio 2008,我可以为TableLayoutPanel中的整行或整列添加特定颜色吗? 怎样?如果有,请提供示例代码 谢谢你的建议。是的,你可以 使用TableLayoutPanel的CellPaint事件测试调用事件的行/列,然后使用矩形的图形对象大小设置单元格的颜色 如下所示(第一行和第三行): 我发现这个答案更容易实现: 这让我可以在手机上加上一个完整的背景色 创建一个带有背景色的面板,然后 在我的表格布局面板 然后该TableLayoutPanel单元格具有 背景色 我的代码最终如下所示: Panel

我可以为TableLayoutPanel中的整行或整列添加特定颜色吗? 怎样?如果有,请提供示例代码

谢谢你的建议。

是的,你可以

使用TableLayoutPanel的CellPaint事件测试调用事件的行/列,然后使用矩形的图形对象大小设置单元格的颜色

如下所示(第一行和第三行):


我发现这个答案更容易实现:

这让我可以在手机上加上一个完整的背景色

  • 创建一个带有背景色的
    面板
    ,然后
  • 在我的
    表格布局面板
  • 然后该
    TableLayoutPanel
    单元格具有 背景色

    我的代码最终如下所示:

    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);
    

    您要确保处理刷子。在using(){}语句中包装其创建,或使用static brushs.Blue。否则,你会在每一幅画上泄漏内存。谢谢提醒,Eilon-并提到使用静态画笔的选项。
    画笔。蓝色是一个静态属性,所以我不会处理它,否则下次使用它时它可能会无效。这可以工作,但在所需代码行、内存使用、以及,或处理器周期。
    
    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);