WinForms选项卡控件问题

WinForms选项卡控件问题,winforms,visual-studio-2010,tabcontrol,Winforms,Visual Studio 2010,Tabcontrol,我有一个窗体,它以两种模式显示。切换模式会完全改变窗体的外观,就像您使用选项卡控件并且每个选项卡上有不同的控件布局时所期望的那样 如果我可以隐藏选项卡本身,选项卡控件将是完美的 当然,我可以使用两个面板,按语法显示和隐藏相应的面板。我尝试过这个,但我的锚定功能一直处于混乱状态(我认为这是Visual Studio designer的一个缺陷) 理想情况下,我希望使用无选项卡的“向导”控件,并在设计时为第一页绘制控件,将“PageNumber”属性切换到第二页,然后将控件放到第二页 我认为TabC

我有一个窗体,它以两种模式显示。切换模式会完全改变窗体的外观,就像您使用选项卡控件并且每个选项卡上有不同的控件布局时所期望的那样

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

当然,我可以使用两个面板,按语法显示和隐藏相应的面板。我尝试过这个,但我的锚定功能一直处于混乱状态(我认为这是Visual Studio designer的一个缺陷)

理想情况下,我希望使用无选项卡的“向导”控件,并在设计时为第一页绘制控件,将“PageNumber”属性切换到第二页,然后将控件放到第二页

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

为了让我的设计时外观模仿运行时,最好的方法是什么

目前,我有两个面板,一个面板直接覆盖另一个面板,我将每个面板的可见属性转换为触发器,我的自动锚定被VS弄得一团糟。我可能不得不求助于编写我自己的archoring代码,这并不难,但我喜欢设计环境尽可能紧密地反应屏幕运行时的外观。这只会让生活更轻松

我也有Telerik Q3 WinForm控件,以防该控件集中有其他控件


建议?

我建议您使用SplitContainer,必要时从左向右移动SplitSeparator

我不确定我的答案是否有多大价值,但仔细想想,这可能是一个方便的解决方案


希望这能有所帮助,

我肯定会使用自定义的“用户控件”来分别显示您想要显示的每个“内容”,并且如您所述,以编程方式显示/隐藏它们。关于“锚定”,把东西放在“用户控件”上,分别放在你想要和锚定的地方。然后,让您的“用户控件”在您将其添加到表单时具有自己的锚属性。控件的大小调整、定位和重新绘制仅在控件可见时进行。因此,当您第一次启动表单时,请确保它(用户控件)可见,然后根据需要将其高度/宽度更改为表单的初始显示,然后从那里开始运行。

这是可能的。向项目中添加一个新类并粘贴如下所示的代码。编译。将新控件从工具箱顶部拖到窗体上。它在设计时具有选项卡,因此您可以轻松地在页面之间切换。但是在运行时隐藏它们,请在代码中使用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);
  }
}

要模拟隐藏选项卡,我只需删除它。问题是你不能很容易地取回它,所以我在表单中使用它,我知道它会因为一个特定的原因打开,然后关闭,而不需要实际使用删除的选项卡。如果您再次使用不同的参数打开表单,它将使用其他选项卡自动打开,并删除不需要的选项卡。

是的,我想到了,但如果我需要第三视图,它会有点难看…我需要在拆分器中使用拆分器。使用Telerik,您可以在一个拆分容器中有3个拆分面板,我想:但是是的,它可能会变得丑陋:),但剩余的选项卡上仍会有一个选项卡。如果有一个普通的向导控件没有内置“下一步”按钮,它将是理想的。是的,选项卡的可见性保持不变。在我的例子中,我有大约7个标签,出于不同的原因,我删除了其中的一些,所以仍然需要标签功能。令人印象深刻。如果它也隐藏在设计视图中,并且选项卡通过属性窗口属性“selectedIndex”进行控制,那就太好了。但是当我试图删除“DesignMode”异常时,我失去了调整其大小的能力。唯一的缺点是:如果缩小对话框,使现在不可见的选项卡只能部分可见,您可以使用滚动/页面箭头按钮选择其中一个选项卡。看起来很奇怪。设置MinimumSize属性。+1顶部回答像往常一样@Hans-你他妈的怎么知道这些东西的?