C# 如何使用多个页面或表单

C# 如何使用多个页面或表单,c#,windows,winforms,visual-studio-2010,C#,Windows,Winforms,Visual Studio 2010,我试图创建一个窗口,在这个窗口上我会有一个带有不同按钮的工具栏 当我点击其中一个按钮时,它会显示一些关于某人的信息,或者当我点击另一个按钮时,它会显示一些关于员工的其他信息 我怎样才能做到这一点。我是否可以进行“添加页面”,然后在该按钮需要时将该页面插入网格或面板 或者我应该只制作多个面板并在一个窗口中创建它们(但是如果我这样做了,那么当这些面板在一个窗口中彼此堆叠时,如何容易地编辑它们)。我希望我已经很清楚了,Idk还有什么别的问题要问。感谢您的帮助 另外,如何停靠某个窗体,以便在最大化或最小

我试图创建一个窗口,在这个窗口上我会有一个带有不同按钮的工具栏

当我点击其中一个按钮时,它会显示一些关于某人的信息,或者当我点击另一个按钮时,它会显示一些关于员工的其他信息

我怎样才能做到这一点。我是否可以进行“添加页面”,然后在该按钮需要时将该页面插入网格或面板

或者我应该只制作多个面板并在一个窗口中创建它们(但是如果我这样做了,那么当这些面板在一个窗口中彼此堆叠时,如何容易地编辑它们)。我希望我已经很清楚了,Idk还有什么别的问题要问。感谢您的帮助


另外,如何停靠某个窗体,以便在最大化或最小化时调整其自身大小?

一种方法是创建另一个窗体并从按钮事件打开它:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.Show();
    }
}
如果希望所有内容都在一个窗口中,可以创建用户控件并将其添加到第一个窗口:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        UserControl1 control = new UserControl1();
        control.Dock = DockStyle.Fill;
        this.Controls.Add(control);
    }
}
另一种选择是使用子窗体:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.IsMdiContainer = true;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.MdiParent = this;
        form2.Show();
    }
}

不久前,我在Windows窗体中实现了一个“分页选项”对话框。我的博客帖子就在这里:(但是图像丢失了)。

为每个按钮创建一个面板。然后:

panelx.Dock = DockStyle.Fill; //this will fill the window.
把你想显示的按钮都放在面板上

如果要显示,请说panel2而不是panel1:

panel1.Hide();
panel2.Show();

如前所述,这可以通过使用选项卡控件来实现

      public ParentForm()
    {
        TabControl tabcontrol1 = new TabControl();
        tabcontrol1.Dock = DockStyle.Top;
        TabPage tab1 = new TabPage("Form1 Name");
        Form1 frm1 = new Form1();
        frm1.TopLevel = false;
        frm1.Parent = tab1;
        frm1.Visible = true;
        tabcontrol1.TabPages.Add(tab1);

        Form2 frm2 = new Form2();
        TabPage tab2 = new TabPage("Form2 Name");
        frm2.TopLevel = false;
        frm2.Parent = discotab;
        frm2.Visible = true;
        tabcontrol1.TabPages.Add(discotab);
    }
使用“堆叠”自定义用户控件

    public ParentForm()
    {
        InitializeComponent();
        MyUserControl1 control1 = new MyUserControl1();
        control1.Dock = DockStyle.Bottom;
        control1.BringToFront();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        MyUserControl2 control2 = new MyUserControl2();
        control2.Dock = DockStyle.Bottom;
        control2.BringToFront();
    }

是的,这可以工作,但我不想有一个新的窗口弹出。我试着把所有的东西都放在一个窗口里。几乎与tabControl相似,但创建了我自己的带有工具栏的选项卡系统。用户控件是您组合在一起的控件的集合,可以像任何其他标准控件一样在任何地方重用。当然,您可以使用面板,并以相同的方式处理它们(在第二个示例中,将UserControl替换为Panel)。将其全部放在用户控件中可以更容易地管理,因为您不必在主窗体中声明每个面板及其组件。如果我向项目中添加一个页面,然后在其中放置数据网格和列表视图等信息。当我单击按钮或更好的按钮时,如何在主窗口中显示该页面,您不必告诉我如何操作,但是否可以这样做