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

时间:2016-10-21 19:58:53

标签: vb.net winforms show-hide tablelayoutpanel autosize

目标

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

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

见下文:

控制:标签 - 不跨越 enter image description here

控件:标签 - 跨越3列 enter image description here

我认为第二列应该崩溃,因为 TextBox 不再可见,并且第二列的'sizing属性被设置为自动调整大小。

请记住,这是我在实际程序中尝试复制的更清晰的示例。我觉得用这种方式显示起来比较简单。我实际上需要扩展功能并正确折叠列。

我是否省略了重要的事情?第二列实际上变大了是非常奇怪的

1 个答案:

答案 0 :(得分:0)

这是我的最终目的。我不知道是不是因为我把Form放在与TableLayoutPanel相对的Form上。如果你没有尝试过,我建议你这样做。

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

enter image description here

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

标签。 Anchor属性已更改

[Pandas(analysis_list=[{'lemma': '*', 'tag': 'Z-----------', 'original_form': 'Deere'}], form='Deere', token_list=[{'form': 'Deere', 'analysis_list': [{'lemma': 'Edere', 'tag': 'GN-S3---', 'original_form': 'Deere'}, {'lemma': 'deer', 'tag': 'GN-S3---', 'original_form': 'Deere'}, {'lemma': 'Edere', 'tag': 'GN-P3---', 'original_form': 'Deere'}, {'lemma': 'deer', 'tag': 'GN-P3---', 'original_form': 'Deere'}, {'lemma': 'Edere', 'tag': 'GNFU3---', 'original_form': 'Deere'}], 'head': '1', 'separation': '_', 'affected_by_negation': 'no', 'endp': '4', 'type': 'phrase', 'style': {'isTitle': 'no', 'isItalics': 'no', 'isUnderlined': 'no', 'isBold': 'no'}, 'id': '5', 'inip': '0', 'token_list': [{'form': 'Deere', 'affected_by_negation': 'no', 'sense_list': [{'id': '228eaef205', 'info': 'sementity/class=class@fiction=nonfiction@id=ODENTITY_MAMMAL@type=Top>LivingThing>Animal>Vertebrate>Mammal\tsemld_list=sumo:Mammal\tsemtheme_list/id=ODTHEME_ZOOLOGY@type=Top>NaturalSciences>Zoology', 'form': 'deer'}, {'id': 'e7c6da7489', 'info': 'sementity/class=instance@fiction=nonfiction@id=ODENTITY_FIRST_NAME@type=Top>Person>FirstName\tsemld_list=sumo:FirstName', 'form': 'Edere'}], 'separation': '_', 'style': {'isTitle': 'no', 'isItalics': 'no', 'isUnderlined': 'no', 'isBold': 'no'}, 'id': '1', 'inip': '0', 'topic_list': {'entity_list': [{'semld_list': ['sumo:FirstName'], 'form': 'Edere', 'sementity': {'id': 'ODENTITY_FIRST_NAME', 'class': 'instance', 'fiction': 'nonfiction', 'type': 'Top>Person>FirstName'}, 'id': 'e7c6da7489'}], 'concept_list': [{'semld_list': ['sumo:Mammal'], 'form': 'deer', 'semtheme_list': [{'id': 'ODTHEME_ZOOLOGY', 'type': 'Top>NaturalSciences>Zoology'}], 'sementity': {'id': 'ODENTITY_MAMMAL', 'class': 'class', 'fiction': 'nonfiction', 'type': 'Top>LivingThing>Animal>Vertebrate>Mammal'}, 'id': '228eaef205'}]}, 'analysis_list': [{'lemma': 'Edere', 'sense_id_list': [{'sense_id': 'e7c6da7489'}], 'tag': 'NPFS-N-', 'original_form': 'Edere', 'check_info': {'form_list': [{'form': 'Edere'}], 'tag': '6'}}, {'lemma': 'deer', 'sense_id_list': [{'sense_id': '228eaef205'}], 'tag': 'NC-S-N2', 'original_form': 'deer', 'check_info': {'form_list': [{'form': 'deer'}], 'tag': '6'}}, {'lemma': 'deer', 'sense_id_list': [{'sense_id': '228eaef205'}], 'tag': 'NC-P-N2', 'original_form': 'deer', 'check_info': {'form_list': [{'form': 'deer'}], 'tag': '6'}}], 'quote_level': '0', 'endp': '4'}], 'quote_level': '0'}])]

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

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"

CheckBox和TextBox没什么特别的。

CheckBox选中的处理程序只是

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

这就是我的表单在选中和取消选中时的作用。

enter image description here

enter image description here