C#winforms是否有像Flex中的“ViewStack”这样的控件?

在Flex中有ViewStack组件。 C#有类似的控制吗?
如果是这样,哪个? 如果没有,你如何创建类似的行为?

是的,TabControl组件以这种方式工作。 您所要做的就是隐藏标签。 在项目中添加一个新类并粘贴下面显示的代码。 编译。 将新控件从工具箱顶部拖放到表单上。 标签在设计时仍然可见,便于编辑页面。 但在运行时隐藏。 使用SelectedTab或SelectedIndex属性选择视图。

using System; using System.Windows.Forms; class ViewStack : TabControl { protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; else base.WndProc(ref m); } } 

不,没有提供相同行为的标准控件。

但是,为了获得类似的行为,我只需为视图堆栈中的每个项目创建一个新的UserControl,并将它们添加到同一位置并具有相同宽度/高度的父窗体。

使用辅助方法,可以很容易地隐藏所有用户控件,然后根据输入参数显示特定的用户控件。

UserControls的主要好处是您可以使用设计器直观地创建每个单独的堆栈项。 可能的缺点是,如果堆栈中有许多项目,或者每个堆栈项目都很复杂,则内存使用量可能会变得非常大。

我认为它本身并不存在。 您可能必须使用Visible属性。