WinForms Tab控件问题

标签 winforms visual-studio-2010 tabcontrol

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

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

当然,我可以使用两个面板并以编程方式显示和隐藏适当的面板。我尝试了这个,但我的锚定一直变得困惑(我认为这是 Visual Studio 设计器的错误。)

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

我认为 TabControl 具有在没有选项卡的情况下显示的功能,例如,这非常适合创建向导样式的界面。

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

目前,我有 2 个面板,一个直接位于另一个面板之上,我翻转每个面板的可见属性,而我的自动锚定被 VS 弄乱了。我可能不得不编写自己的锚定代码,这并不难,但我喜欢设计环境尽可能接近屏幕运行时的外观的 react 。它只会让生活变得更轻松。

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

建议?

最佳答案

这是可能的。将新类添加到您的项目中并粘贴下面所示的代码。编译。将新控件从工具箱顶部拖放到窗体上。它在设计时有选项卡,因此您可以轻松地在页面之间切换。但在运行时隐藏它们,请在代码中使用 SelectedIndex 或 SelectedTab 属性来切换 View 。

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);
  }
}

关于WinForms Tab控件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4405613/

相关文章:

c# - 使用 Process.Start() 打开文件夹时访问被拒绝异常

c# - UI测试框架+持续集成?

c# - 动态填充的 TableLayoutPanel 性能下降

visual-studio-2010 - Visual C++ 2010 的惰性 C++ (LZZ) 规则文件

c# - WS_EX_COMPOSITED 和滚动条在拖动时不绘制

c# - Visual Studio 2015 中的项目加载失败

c# - 如何以编程方式设置标签页的键?

c# - tabcontrol OwnerDrawFixed 在 C# 中从右到左

delphi - Delphi的可拖动选项卡控件?

mysql - C# 到 MY SQL 延迟查询执行