Tôi có thể thêm màu sắc cụ thể cho toàn bộ Hàng hoặc Cột trong TableLayoutPanel không? Làm cách nào? vui lòng cung cấp mã mẫu nếu có ..Màu hàng/cột cho TableLayoutPanel (vs2008, winform)
Cảm ơn bạn đã ủng hộ.
Tôi có thể thêm màu sắc cụ thể cho toàn bộ Hàng hoặc Cột trong TableLayoutPanel không? Làm cách nào? vui lòng cung cấp mã mẫu nếu có ..Màu hàng/cột cho TableLayoutPanel (vs2008, winform)
Cảm ơn bạn đã ủng hộ.
Có thể.
Sử dụng sự kiện CellPaint của TableLayoutPanel để kiểm tra hàng/cột nào đã gọi sự kiện và sau đó sử dụng kích thước đối tượng Đồ họa cho hình chữ nhật để đặt màu của ô.
Như thế này (đối với hàng đầu tiên và thứ ba):
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);
}
}
Tôi tìm thấy câu trả lời này dễ dàng hơn nhiều để thực hiện:
này cho phép tôi đặt một backcolor đầy đủ trên di động của tôi.
Panel
, trong đó có một backcolor, vàDock
rằng Panel
trong tôi TableLayoutPanel
Sau đó rằng TableLayoutPanel
di động có backcolor .
Mã của tôi đã kết thúc như thế này:
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);
Tính năng này hoạt động nhưng không hiệu quả về mặt mã yêu cầu, sử dụng bộ nhớ hoặc chu trình xử lý. –
Bạn muốn chắc chắn rằng bạn vứt bàn chải. Quấn sáng tạo của nó trong câu lệnh using() {} hoặc sử dụng Brushes.Blue tĩnh. Nếu không, bạn sẽ bị rò rỉ bộ nhớ trên mọi loại sơn. – Eilon
cảm ơn lời nhắc, Eilon - và đề cập đến tùy chọn sử dụng Brushes tĩnh. –
'Brushes.Blue' là thuộc tính tĩnh, vì vậy tôi sẽ không hủy bỏ nó, nếu không nó có thể trở thành không hợp lệ vào lần sau bạn sử dụng nó. –