【问题标题】:Reload secondary combobox array on primary combobox change event在主组合框更改事件上重新加载辅助组合框数组
【发布时间】:2023-03-20 08:07:01
【问题描述】:

此处是我的代码,用于将ComboBox数组添加到GroupBox数组,然后选择组合框中的项目时,它显示辅助组合框

Dim gbQuoteProduct(5) As GroupBox
Dim cmboBoxQuoteProduct(5) As ComboBox
gbQuoteProduct(n) = New GroupBox

Private Sub frmCreateQuote_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With gbQuoteProduct(n)
    .Text = ""
    .Location = New Point(10, 5 + n * 70)
    .Width = 300
    .Height = 70
End With
pnlQuoteProducts.Controls.Add(gbQuoteProduct(n))

cmboBoxQuoteProduct(n) = New ComboBox
With cmboBoxQuoteProduct(n)
    .Items.Add("A")
    .Items.Add("B")
    .Items.Add("C")
    .Items.Add("D")
    .Text = ""
    .Location = New Point(60, 15)
End With
gbQuoteProduct(n).Controls.Add(cmboBoxQuoteProduct(n))
AddHandler cmboBoxQuoteProduct(n).SelectedIndexChanged, AddressOf subProducts
End Sub

“子产品”只是生成一个辅助组合框。

但是,如果我从第一个组合框中选择了错误的选项,然后尝试更改我的选择,则辅助组合框不会刷新新的组合框。换句话说,第二个组合框的选项不会改变以反映第一个组合框的变化。

【问题讨论】:

    标签: arrays vb.net combobox


    【解决方案1】:

    我做到了并且成功了。代码在图片下方

    Public Class frmQuestion28955485
        Dim gbQuoteProduct(5) As GroupBox
        Dim cmboBoxQuoteProduct(5) As ComboBox
    
        Dim cmboBoxSubProducts(5) As ComboBox
        Dim n As Integer
    
        Private Sub frmCreateQuote_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            n = 1
            gbQuoteProduct(n) = New GroupBox
            With gbQuoteProduct(n)
                .Text = ""
                .Location = New Point(10, 5 + n * 70)
                .Width = 300
                .Height = 70
            End With
            pnlQuoteProducts.Controls.Add(gbQuoteProduct(n))
    
            cmboBoxQuoteProduct(n) = New ComboBox
            With cmboBoxQuoteProduct(n)
                .Items.Add("A")
                .Items.Add("B")
                .Items.Add("C")
                .Items.Add("D")
                .Text = ""
                .Location = New Point(60, 15)
            End With
            gbQuoteProduct(n).Controls.Add(cmboBoxQuoteProduct(n))
            AddHandler cmboBoxQuoteProduct(n).SelectedIndexChanged, AddressOf subProducts
        End Sub
        Private Sub subProducts(ByVal sender As Object, ByVal e As System.EventArgs)
            Try
                gbQuoteProduct(n).Controls.Remove(cmboBoxSubProducts(n))
            Catch
    
            End Try
    
            cmboBoxSubProducts(n) = New ComboBox
            With cmboBoxSubProducts(n)
                .Items.Clear()
                .Items.Add("You picked " + cmboBoxQuoteProduct(n).Text)
                .Text = "You picked " + cmboBoxQuoteProduct(n).Text
                .Location = New Point(60, 40)
            End With
            gbQuoteProduct(n).Controls.Add(cmboBoxSubProducts(n))
        End Sub
    End Class
    

    【讨论】:

    • 非常感谢@VeteranLK。我真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多