如何在 Windows 表单中动态切换面板

How to switch panels dynamically in Windows Forms

我是 C# 的新手,正在 Visual Studio 中开发 C# Windows Forms 应用程序,想用另一个面板 B 动态替换 Form 中的现有面板 A。

实现这一点的方法之一是将面板彼此叠放,使它们的左上角相互重叠。但是这种方法很难对放置在下方的面板进行更改。

我在 Java 中完成了此类工作,但尚未找到 Windows 表单的任何解决方案。

正如您指定的,您不想使用面板,然后使用 TabControl

在 运行 时间或设计时间

  1. Appearance设置为按钮

  2. 设置 ItemSize 宽度为 0,高度为 1

  3. Multiline 设置为 True

  4. SizeMode 设置为固定

标签页上的标签现在应该不可见,但标签页仍然存在。

不过,它还可以让您更轻松地使用每个页面上的控件

根据评论更新

另一种方法是从 TabControl

继承

如此处所示See Creating Wizards for Windows Forms in C#

class WizardPages : 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);
  }
}