【发布时间】:2019-08-08 15:01:33
【问题描述】:
我正在开发 C# Winforms 应用程序。我使用 TableLayoutPanel 将表单划分为表格单元格。对于表格布局的特定单元格,我想插入多个面板 - 一个接一个,以便我可以使用 BringToFront() 在面板之间切换(仅适用于该单元格)。
我在一个似乎有效的表单上尝试了同样的方法。在表格布局的单元格中,我只能在其中添加一个面板。当我尝试在该单元格中添加其他面板时,这些面板会嵌入到第一个面板中。这使得在面板之间切换变得困难。
我还尝试将所有需要的面板插入一个空面板(放置在单元格中)。但是,我不知道如何在它的子面板之间切换。
注意:面板的切换将由表格其他单元格中的 ComboBox 选择触发。
【问题讨论】:
-
只需在单元格中添加一个面板,然后在其中添加其他面板。
-
谢谢亚历山德罗!但是,我已经尝试过了。我无法弄清楚如何将所需的面板放在前面,因为它们的父级也将是一个面板,并且隐藏父级也会隐藏其子面板。
-
将面板添加到
List<Panel>。当 ComboBox 选择发生变化时,使用SelectedIndex作为List<Panel>的索引器,选择相应的Panel。将其设置为Enable = true和.BingToFront()。禁用前一个(或所有其他面板,如果您没有跟踪当前显示的面板的逻辑)。使用专门的类作为面板切换处理程序可能会更好。或者一个包含所有逻辑的 UserControl。
标签: c# .net winforms layout software-design