net llenar ejemplos control column c# .net winforms tablelayoutpanel

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 }