首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >问题:使用表布局面板列AutoSize控制跨度

问题:使用表布局面板列AutoSize控制跨度
EN

Stack Overflow用户
提问于 2016-10-21 19:58:52
回答 1查看 729关注 0票数 0

目标

我需要一个存储在TextBox中的控件TableLayoutPanel (列: 2)来隐藏和显示复选框的检查/取消检查。在此隐藏和显示期间,其列在隐藏时必须完全折叠。标签控件需要跨越表布局面板的列。因此,当TextBox被隐藏时,第二列必须完全折叠,因为第三列设置为百分比(100%)。

  • 注意:我将我的所有控件放置在一个表格布局面板中,以正确调整不同用户之间的表单大小(100%、125%、150%)。

见下文:

控件:标签-不跨越

控件:跨标签的3列

我认为第二列应该崩溃,因为TextBox不再可见,第二列的大小属性设置为自动大小。

记住,这是我试图在实际程序中复制的一个更清楚的例子。我想用这种方式展示它更简单。实际上,我需要正确地展开和折叠列。

我是不是漏掉了什么重要的东西?非常奇怪的是,第二列实际上变大了。

EN

回答 1

Stack Overflow用户

发布于 2016-10-21 20:51:10

这是我的工作。我不知道是不是因为我把标签放在了反对TableLayoutPanel的表格上。如果你没试过,我建议你试一试。

确保标签不在文档大纲( TableLayoutPanel )中的TableLayoutPanel中(Ctrl+Alt+T)。

下面是设计器文件中的控件属性

标签。锚属性已更改

代码语言:javascript
运行
复制
Me.Label1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.Label1.BackColor = System.Drawing.SystemColors.Control
Me.Label1.Location = New System.Drawing.Point(3, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(338, 18)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test T" & _
"est Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test"

TableLayoutPanel。属性以及列和行都已更改。

代码语言:javascript
运行
复制
Me.TableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.OutsetDouble
Me.TableLayoutPanel1.ColumnCount = 3
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle())
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle())
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.Controls.Add(Me.CheckBox1, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.TextBox1, 1, 0)
Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 2
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle())
Me.TableLayoutPanel1.Size = New System.Drawing.Size(344, 233)
Me.TableLayoutPanel1.TabIndex = 1

CheckBox和TextBox没有什么特别之处。

CheckBox选中的处理程序很简单

代码语言:javascript
运行
复制
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    Me.TextBox1.Visible = Me.CheckBox1.Checked
End Sub

这就是我的表单在检查和未检查时所做的。

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

https://stackoverflow.com/questions/40184582

复制
相关文章

相似问题

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