Цвет строки / столбца для TableLayoutPanel (версия 2008, winform) - PullRequest
9 голосов
/ 09 января 2010

Могу ли я добавить определенный цвет для всей строки или столбца в TableLayoutPanel? Как ? пожалуйста, предоставьте образец кода, если таковой имеется.

Спасибо в Adv.

Ответы [ 2 ]

21 голосов
/ 09 января 2010

Да, вы можете.

Используйте событие CellPaint TableLayoutPanel, чтобы проверить, для какой строки / столбца вызвано событие, а затем используйте размер графического объекта для прямоугольника, чтобы установить цвет ячейки.

Вот так (для первого и третьего ряда):

     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);
        }
    }
5 голосов
/ 24 ноября 2011

Я нашел этот ответ гораздо проще реализовать:

Это позволило мне поставить полный цвет на мою камеру.

  1. Создайте Panel, который имеет задний цвет, и
  2. Я Dock, что Panel по моему TableLayoutPanel

Тогда эта TableLayoutPanel клетка имеет BackColor.

Мой код в итоге выглядел так:

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

http://www.codeguru.com/forum/showthread.php?t=444944

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...