WinForms选项卡控件问题

Cha*_*adD 3 tabcontrol visual-studio-2010 winforms

我有一个以两种模式显示的表单.切换模式完全改变了表单的外观,就像您使用选项卡控件并在每个选项卡上具有不同的控件布局一样.

如果我可以隐藏选项卡本身,选项卡控件将是完美的.

当然,我可以使用两个面板并以编程方式显示和隐藏适当的面板.我试过这个,但我的锚定一直搞砸了(我认为这是一个Visual Studio设计器的bug.)

理想情况下,我想使用"向导"控件,它是无标签的,在设计时,绘制第一页的控件,将"PageNumber"属性切换到第二页,然后将控件拖放到第二页.

我认为TabControl具有不带选项卡的功能,例如,它可以很好地创建一个向导样式的界面.

最好的方法是什么,以便我的设计时间外观模仿运行时间?

目前,我有两个面板,一个直接在另一个面板上,我翻转了每个面板的可见属性,我的自动锚定正在被VS搞砸了.我可能不得不求助于编写我自己的存档代码,这并不难,但我喜欢它,当设计环境对屏幕运行时的外观反应的可能性非常接近.它只会让生活更轻松.

我也有Telerik Q3 WinForm控件,以防该控件集中有替代品...

建议?

Han*_*ant 13

这是可能的.在项目中添加一个新类并粘贴下面显示的代码.编译.将新控件从工具箱顶部拖放到表单上.它在设计时有标签,因此您可以轻松地在页面之间切换.但是在运行时隐藏它们,使用代码中的SelectedIndex或SelectedTab属性来切换视图.

using System;
using System.Windows.Forms;

class PageControl : 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);
  }
}
Run Code Online (Sandbox Code Playgroud)