c# - llenar - Dibuje bordes alrededor de algunas celdas en un tablelayoutpanel
tablelayoutpanel vb.net ejemplos (2)
Acceda a las propiedades de tableLayoutPanel y establezca CellBorderStyle en Single
No pregunte por qué, pero tengo el requisito de dibujar un borde alrededor de ciertas celdas en un TableLayoutPanel
.
Por ejemplo, para simplificar, digamos que tengo un TableLayoutPanel
1 fila y 5 columnas. Cada celda tiene un botón en ella. Me gustaría dibujar un cuadro alrededor de las primeras 3 celdas y luego otro cuadro alrededor de las últimas 2 celdas. Así que dos cajas en total.
¿Alguna sugerencia sobre cómo lograr eso?
Gracias.
Podría usar el evento CellPaint
y dibujar el rectángulo del borde cuando sea necesario:
tableLayoutPanel1.CellPaint += tableLayoutPanel1_CellPaint;
El manejador:
void tableLayoutPanel1_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
{
if (e.Column == 1 && e.Row == 0)
e.Graphics.DrawRectangle(new Pen(Color.Blue), e.CellBounds);
}
Puedes dibujar cualquier tipo de borde usando ControlPaint
:
if (e.Column == 1 && e.Row == 0)
{
var rectangle = e.CellBounds;
rectangle.Inflate(-1, -1);
ControlPaint.DrawBorder3D(e.Graphics, rectangle, Border3DStyle.Raised, Border3DSide.All); // 3D border
ControlPaint.DrawBorder(e.Graphics, rectangle, Color.Red, ButtonBorderStyle.Dotted); // dotted border
}