如何在Windows窗体中动态切换面板

时间:2018-02-18 03:40:21

标签: c# winforms dynamic panel

我是C#的新手,正在使用Visual Studio中的C#Windows窗体应用程序,并希望用另一个面板B动态替换Form中的现有面板A.

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

我在Java中完成了这种类型的工作,但没有找到任何Windows Forms的解决方案。

1 个答案:

答案 0 :(得分:1)

如您所说,您不想要面板,请使用TabControl

在运行时或在设计时

  1. Appearance设置为按钮

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

  3. Multiline设为True

  4. SizeMode设为固定

  5. 标签页上的标签现在应该不可见,但是标签页仍在那里。

    但是,它还允许您更轻松地使用每个页面上的控件

    来自评论的

    更新

    另一种方法是继承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);
      }
    }