这对我有用。不知道是不是因为我把Label放在Form上,和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"
表格布局面板。 Dock 属性以及列和行已更改。
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 检查处理程序很简单
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
Me.TextBox1.Visible = Me.CheckBox1.Checked
End Sub
这就是我的表单在选中和未选中时的作用。