2017-07-28 50 views
0

我真的是新的VB和试图学习它,我有一个组合框13个集合和一个按钮,我希望每当用户从组合框中选择一个选项,然后单击按钮,它应该以单独的形式打开。但问题是每当用户点击一个选项时,所有13种表格都会打开。vb组合框选定的项目打开个别形式

请帮助 这里是我的代码

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    ComboBox1.SelectedValue = "1" 
    Form2.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "2" 
    Form3.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "3" 
    Form4.Show() 
    ComboBox1.SelectedValue = "4" 
    Form3.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "5" 
    Form5.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "6" 
    Form6.Show() 
    ComboBox1.SelectedValue = "7" 
    Form7.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "8" 
    Form8.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "9" 
    Form9.Show() 
    ComboBox1.SelectedValue = "10" 
    Form9.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "11" 
    Form10.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "12" 
    Form11.Show() 
    Me.Hide() 
    ComboBox1.SelectedItem = "13" 
    Form12.Show() 
    Me.Hide() 
End Sub 
+0

您写的代码反过来会告诉组合框从1到13中选择每个项目,然后显示一个窗体,有时(但不总是)轮流隐藏当前窗体。有多种方式可以改变这种做法来做你想做的事情。你当然应该检查'SelectedItem'而不是设置它。您可以选择一个“选择案例”或“If” - “Then”语句来处理它,或者您可以设置组合框数据源,以便每个项目都包含对要显示的表单的引用(以成本制作它们全部的实例,即使是你不想显示的实例) – Craig

+0

我试过了选择案例,如果是的话,但是每当我运行程序时,按钮都不起作用 –

+0

您是否尝试在事件中设置断点处理程序,并在调试器中通过它? – Craig

回答

0
基于你正在尝试做的, 什么其他人劝你们, 这听起来像你没有正确的格式,如果..

然后和/或您的select ... case语句。

下面的代码应该做你正在做的事情。 我们使用SELECTINDEX属性来确定当前选择下拉列表中的哪个索引元素。

此外,如果您有其中任何一个安装程序,则可以通过组合框/下拉对象的事件过程中的任何代码来影响下面的代码(受影响,因此它不起作用)。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    ' 
    Select Case Combobox1.SelectedIndex 
     Case 1 
      Form2.Show() 
      Me.Hide() 
     Case 1, 4 
      Form3.Show() 
      Me.Hide() 
     Case 3 
      Form4.Show() 
      Me.Hide() 
     Case 5 
      Form5.Show() 
      Me.Hide() 
     Case 6 
      Form6.Show() 
      Me.Hide() 
     Case 7 
      Form7.Show() 
      Me.Hide() 
     Case 8 
      Form8.Show() 
      Me.Hide() 
     Case 9, 10 
      Form9.Show() 
      Me.Hide() 
     Case 11 
      Form10.Show() 
      Me.Hide() 
     Case 12 
      Form11.Show() 
      Me.Hide() 
     Case 13 
      Form12.Show() 
      Me.Hide() 
    End Select 
' 
End Sub 
+0

谢谢THIS代码解决了它,但现在当您单击组合框选项3时,窗体3打开,而不是form4。同样如果你点击选项6,表单6打开。任何更正? –

+0

Comboboxes在0(零)时开始它们的索引,它们不是从一开始。大多数人将第一个选项设置为对用户的提示,如“请选择”。因此,如果您的第一个选项不是提示,请尝试相应地调整您的号码。如果你不完全明白,请给我发一封邮件。或者,最好还是添加用于填充组合框的代码或列出组合框中的每个项目,特别是包括FIRST(最顶层)项目。要显示的表单(在我的代码中)与示例代码中的表单相匹配。我期望混合是与第一个元素(选项0)? – Zeddy

+0

工作完美。谢谢你好 –

相关问题