尝试进行智能组合框项目交互

时间:2018-03-30 15:12:19

标签: vb.net visual-studio-2013

我在这里发现是否有可能完成我的想法,以节省我编写长代码的时间。

我有1个主要组合框,各种项目和其他一些组合框。它们的每个组合框称为" Combo" +主组合框中的项目。 当我点击一个项目隐藏最后使用的组合框并显示与此项目相关联的组合框时,我想知道我可以吗? 1.隐藏最后使用的组合框 2.显示响应主要combox中所选项目的组合框

Public Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged

Dim SelectedAction As String = "Combo" + ComboBox2.Text
lastcombobox.visible = false
' now to assign to the new combobox
lastcombobox = (SelectedAction as name of combobox) combobox
Lastcombobox.visible = true
End Sub 

1 个答案:

答案 0 :(得分:0)

字符串不是控件。字符串是Control.Name的数据类型;这是控件对象的Name属性。您不能将字符串强制转换为控件,但所有字符串都不会丢失。在设计时创建其他组合框并将它们叠加在一起。注意lastConboBox之前的Static关键字。这会持续调用方法之间的值。你可以通过使这个变量成为类级变量来完成同样的事情。第一次调用该方法时,它们将在lastComboBox中无效,因此检查IsNothhing。 Control.Find返回一个数组,所以我们必须引用ctl(0) - 数组的第一个元素,因为我们知道它只返回一个。

Private Sub Combo2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Combo2.SelectedIndexChanged
        Dim SelectedAction As String = "Combo" & Combo2.Text
        Static lastComboBox As ComboBox
        If Not IsNothing(lastComboBox) Then
            lastComboBox.Visible = False
        End If
        Dim ctl() As Control = Controls.Find(SelectedAction, True)
        lastComboBox = CType(ctl(0), ComboBox)
        lastComboBox.BringToFront()
        lastComboBox.Visible = True
End Sub