仅绘制TableLayoutPanel单元格的外边框

use*_*294 7 .net c# winforms

我使用TableLayoutPanel例如,如果我有3行和5列.我想只绘制整个面板的外边框.默认情况下,面板提供CellBorderStyle,它将所有边框添加到所有可用单元格.有什么方法可以只设置外边界吗?

我在下面提供了示例代码.

    TableLayoutPanel tblPanel = new TableLayoutPanel;
    tblPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
    Label lblName;
    TextBox txtName;
    Button btnAdd;
    int colCnt = 0;
    for(int rw =0; rw < 3; rw++)
    {
            lblName = new Label();
            lblName.Name = "mylabel" + rw.ToString();
            tblPanel.Controls.Add(lblName, colCnt, rw);
            colCnt++;

            txtName = new TextBox();
            txtName.Name = "mytext" + rw.ToString();
            tblPanel.Controls.Add(txtName, colCnt, rw);
            colCnt++;

            btnAdd = new Button();
            btnAdd.Name = "mybutton" + rw.ToString();
            tblPanel.Controls.Add(btnAdd, colCnt, rw);

            colCnt = 0;
    }
Run Code Online (Sandbox Code Playgroud)

Fer*_*osa 5

我看到你是一个非常新的海报。这里的行为准则是​​,您实际上应该展示您尝试过的内容并查明技术问题。不要只是以这种方式提出问题(特别是那些使您看起来甚至没有尝试过的问题)。

话虽如此,并尝试帮助您,您最好自己绘制单元格边框。遵循以下内容,然后进行自定义:

    public TableForm() {
        InitializeComponent();
        this.tableLayoutPanel.CellPaint += tableLayoutPanel_CellPaint;
    }

    private void tableLayoutPanel_CellPaint(object sender, TableLayoutCellPaintEventArgs e) {
        e.Graphics.DrawLine(Pens.Black, e.CellBounds.Location, new Point(e.CellBounds.Right, e.CellBounds.Top));
    }
Run Code Online (Sandbox Code Playgroud)

在设计时: 在设计时

在运行时: 在运行时

  • 没有这样的行为准则。这是一个问答网站。它旨在成为可以帮助他人避免浪费时间的信息的知识库。请指出常见问题,其中提到了您所谓的行为准则。 (4认同)

小智 5

实际上,TableLayoutPanel确实支持您想要的BorderStyle属性。例如:

tableLayoutPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Run Code Online (Sandbox Code Playgroud)

https://msdn.microsoft.com/zh-CN/library/system.windows.forms.tablelayoutpanel.borderstyle(v=vs.110).aspx

装饰有:

[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
Run Code Online (Sandbox Code Playgroud)

因此Intellisense不会向您显示它,但已对其进行了记录且可以正常运行。我无法理解为什么它是不可浏览的。