在 Flex 中有ViewStack组件。C# 有类似的控件吗?
如果是这样,是哪个?如果没有,您如何创建类似的行为?
问问题
1160 次
3 回答
5
是的,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);
}
}
于 2010-02-05T14:20:34.527 回答
1
不,没有提供相同行为的标准控件。
然而,为了获得类似的行为,我只需为视图堆栈中的每个项目创建一个新的 UserControl,并将它们添加到相同位置和相同宽度/高度的父窗体。
使用辅助方法可以很简单地隐藏所有用户控件,然后根据输入参数显示特定的用户控件。
UserControls 的主要好处是您可以使用设计器直观地创建每个单独的堆栈项。一个可能的缺点是,如果堆栈中有很多项,或者每个堆栈项都很复杂,则内存使用量可能会变得非常大。
于 2010-02-05T13:28:22.287 回答
0
我不认为它在本地存在。您可能不得不使用 Visible 属性。
于 2010-02-05T13:05:31.957 回答