// RowStyles index is index of the row you are dealing with
tableLayoutPanel1.RowStyles[1].SizeType = SizeType.Absolute;
tableLayoutPanel1.RowStyles[1].Height = 0;
For i = 0 To My_Table_layout_panel.Controls.Count - 1
If My_Table_layout_panel.GetRow(My_Table_layout_panel.Controls(i)) = LAST_RAM_ROW Then
My_Table_layout_panel.Controls(i).Hide()
End If
Next
或向他们展示:
For i = 0 To My_Table_layout_panel.Controls.Count - 1
If My_Table_layout_panel.GetRow(My_Table_layout_panel.Controls(i)) = LAST_RAM_ROW Then
My_Table_layout_panel.Controls(i).Show()
End If
Next
4条答案
按热度按时间cuxqih211#
在
TableLayoutPanel
中隐藏和显示行实际上并不简单。根据您的UI模拟,我假设第一行和第三行设置为
Absolute
,而第二行设置为AutoSize
或Percent
。我还假设面板的Dock
设置为Fill
。在末尾添加一个空行,将
SizeType
设置为AutoSize
。当用户操作开始时(比如单击按钮),执行以下操作:因为最后有一行是自动调整大小的,所以所有其他行都将上移,表单底部将有空白。这将保留您想要的布局。当操作完成时,您可以将有问题的行设置回
Percent
或AutoSize
。qxsslcnc2#
如果表格布局行大小样式是自动调整大小,则可以通过将行内容的visible属性(例如,groupbox)设置为true或false来实现显示/隐藏行为。
wljmcqd83#
正如赵洁所说。
如果所有行样式的
SizeType
属性都设置为Absolute
,但要隐藏的行样式设置为AutoSize
,则只需在行样式内的每个控件中将Visible
属性设置为False
。在我的示例中,TableLayoutPanel有三列。
See example
hmmo2u0o4#
不知何故丹麦的建议是不工作的罚款。仍然有可见的控件,取决于风格-复选框“clasic”消失,同时“框”风格是有点可见。文本框是可见的“隐藏”行,如果你删除两行,只有那么一个文本框是隐藏的。
是的,还有额外的自动调整行和列的空单元格。x1c 0d1x
所以,唯一合适的办法就是把孩子藏起来:
或向他们展示:
现在它的工作原理就像一个魅力。
LAST_RAM_ROW
只是要隐藏的行。