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

控件:跨标签的3列

我认为第二列应该崩溃,因为TextBox不再可见,第二列的大小属性设置为自动大小。
记住,这是我试图在实际程序中复制的一个更清楚的例子。我想用这种方式展示它更简单。实际上,我需要正确地展开和折叠列。
我是不是漏掉了什么重要的东西?非常奇怪的是,第二列实际上变大了。
发布于 2016-10-21 20:51:10
这是我的工作。我不知道是不是因为我把标签放在了反对TableLayoutPanel的表格上。如果你没试过,我建议你试一试。
确保标签不在文档大纲( TableLayoutPanel )中的TableLayoutPanel中(Ctrl+Alt+T)。

下面是设计器文件中的控件属性
标签。锚属性已更改
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。属性以及列和行都已更改。
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 = 1CheckBox和TextBox没有什么特别之处。
CheckBox选中的处理程序很简单
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
Me.TextBox1.Visible = Me.CheckBox1.Checked
End Sub这就是我的表单在检查和未检查时所做的。


https://stackoverflow.com/questions/40184582
复制相似问题