使用下拉菜单切换表单?

Switching forms with a Drop-Down menu?

所以我不是很擅长 C#,但我认为一个很酷的想法是学习使用下拉菜单切换表单。我有以下代码可以切换形式,但是变量声明在错误的部分或其他地方,因为即使指定了它们也会切换到错误的形式。即使在下拉菜单中选择了 Builder 索引,“Builder”也会打开“Pumper”选项卡。

    if
          (bunifuDropdown1.selectedIndex.ToString() == "Builder") ;
        Decoder f4 = new Decoder();
        Pumper f3 = new Pumper();
        Builder f2 = new Builder();
        f2.Show();
        f3.Hide();
        f4.Hide();
        this.Hide();


        if
          (bunifuDropdown1.selectedIndex.ToString() == "Pumper") ;
        f3.Show();
        f2.Hide();
        f4.Hide();
        this.Hide();

不胜感激。谢谢

我大概明白你想要什么,但是说实话,我很懒得写错误的代码来达到你的目的...... 我会马上告诉你 - 你有一个坏主意 :)。因为您将在每个独立的表单中包含导航菜单,您需要考虑如何提出一个通用数据对象(例如 class),该对象将同时在所有表单中可用,并在其中填写数据执行列表(也许它会帮助你“ApplicationContext Class”https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.applicationcontext?view=netframework-4.7.2)。

最优的方式,比如做一个窗体,放置“ComboBox”(p.s。还有为什么需要第三方图形框架?...)对象(添加必要的元素),将“Panel”(或“TabControl”)添加到表单,并且link将必要的块显示到“ComboBox”数据更改事件。

例如:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if ((string)comboBox1.SelectedItem == "1")
        {
            panel1.Visible = true;
            panel2.Visible = false;
        }
        if ((string)comboBox1.SelectedItem == "2")
        {
            panel2.Visible = true;
            panel1.Visible = false;
        }
        else
        {
            panel1.Visible = false;
            panel2.Visible = false;
        }
    }