C#.NET替代用户控制面板

C#.NET替代用户控制面板,c#,.net,winforms,C#,.net,Winforms,我对C#NET中的GUI开发相当陌生,使用WinForms,我正在创建一个具有一个表单(如主菜单)和不同“子菜单”的应用程序,所有这些都可以在同一表单中打开。这就是我目前拥有的: 打开UserPanel1的应用程序 未选择任何用户面板的应用程序 我看到youtuber使用了一些可疑的UserControls,这就是我目前正在使用的。我正在使用一个表格布局面板,其中包含用户控件 但是我有一些问题。首先,我不知道这是否是使用UserControls的正确方法,以及这是否会引发任何错误 其次,我不

我对
C#NET
中的GUI开发相当陌生,使用
WinForms
,我正在创建一个具有一个表单(如主菜单)和不同“子菜单”的应用程序,所有这些都可以在同一表单中打开。这就是我目前拥有的:

打开UserPanel1的应用程序

未选择任何用户面板的应用程序

我看到youtuber使用了一些可疑的
UserControls
,这就是我目前正在使用的。我正在使用一个
表格布局面板
,其中包含
用户控件

但是我有一些问题。首先,我不知道这是否是使用UserControls的正确方法,以及这是否会引发任何错误

其次,我不知道在一个表单中使用多个UserControls的确切方式,因为我不能在
TableLayoutPanel
的单个单元格中拖动多个UserControls,如果我使用一些简单的代码实例化一个新的UserControl,它将不会显示我以前放置的所有自定义控件(在该UserControl中)。这是代码:

private void button1_Click(object sender, EventArgs e)
{
    Form1_UserControl1 form1_UserControl1 = new Form1_UserControl1();
    form1_UserControl1.Show();
    form1_UserControl1.BringToFront();
    form1_UserControl1.Dock = DockStyle.Fill;
}
我知道这可能是我做错的一件简单的事情,但我只需要一些简单的建议

我是否使用了正确的控制,或者是否有更好/更简单的方法来实现我所寻找的目标

  • 将所有
    UserControls
    初始化为私有字段
  • TableLayoutPanel
    添加所有这些
    UserControls
  • 使用按钮隐藏/显示它们
  • 我的示例代码:

    公共部分类表单1:表单
    {
    私有用户控件[]myUserControls=新用户控件[3];
    公共表格1()
    {
    初始化组件();
    初始化UserControls();
    }
    私有void InitializeUserControls()
    {
    for(int i=0;i
    您不需要TLP,这当然可以简化TLP。只是一个按钮面板,Dock=左。使用Dock=Fill一次显示一个用户控件。请确保Dispose()之前选择的控件。最后一段代码表明您将其称为UserControl,而实际上它是一个窗体。如果它确实是一个表单,您仍然可以在面板中显示它,方法是将其
    最顶端的
    属性设置为false,然后使用类似
    panel1.Controls.Add(somethingHere)
    的内容添加它。将Dock属性设置为Fill,将FormBorderStyle设置为None,使其看起来不像表单。请参见此答案