首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在tablelayoutpanel中的某些单元格周围绘制边框

在tablelayoutpanel中的某些单元格周围绘制边框
EN

Stack Overflow用户
提问于 2011-06-05 04:25:22
回答 3查看 27.5K关注 0票数 19

不要问为什么,我需要在TableLayoutPanel中的某些单元格周围画一个边框。

例如,为了简单起见,假设我有一个1行5列的TableLayoutPanel。每个单元格都有一个按钮。我想在前3个单元格周围画一个框,然后在最后2个单元格周围画另一个框。总共有两个盒子。

对如何实现这一点有什么建议吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-05 04:34:19

您可以使用CellPaint事件并在需要时绘制边框矩形:

tableLayoutPanel1.CellPaint += tableLayoutPanel1_CellPaint;

处理程序:

void tableLayoutPanel1_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
{
    if (e.Column == 1 && e.Row == 0)
        e.Graphics.DrawRectangle(new Pen(Color.Blue), e.CellBounds);
}

您可以使用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
}
票数 29
EN

Stack Overflow用户

发布于 2017-01-18 17:56:00

访问tableLayoutPanel的属性并将CellBorderStyle设置为Single

票数 3
EN

Stack Overflow用户

发布于 2019-12-30 06:11:44

绘图是编码错误修剪,加上代码污染。在winforms中的TableLayoutPanel开始支持表格中“边框”的基本功能之前,如果需要的话,最好使用一个内部有额外表格的面板(Dock:Fill)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6239179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档