【问题标题】:VB Combobox not resetting dataVB Combobox不重置数据
【发布时间】:2016-05-26 11:58:01
【问题描述】:

我正在编写一个 VB 应用程序,其中用户在一个表单上将库存输入到数组中。在另一个表单上,我有一个组合框,当用户单击组合框时,它会从此数组中填充。现在,每次我单击组合框的下拉菜单时,都会将另一个项目添加到组合框中。目前数组中只有一项。如果我向数组中添加另一个项目,则每次单击时项目的数量都会翻倍。

 Private Sub cmbStock_Click(sender As Object, e As EventArgs) Handles cmbStock.Click
    cmbStock.ResetText()
    cmbStock.SelectedIndex = -1
    cmbStock.Items.Add(ProdDesc(0))
End Sub

我尝试使用 ResetText(),认为每次用户单击 ComboBox 时,它都会重置然后再次加载。没有变态。

我尝试将 sub 更改为 cmbStock_OnFocus(),但与上面的情况相同。我什至试图强制它只显示数组中的一项(如上)

似乎它应该可以工作,我能想到的唯一另一件事是编写更多代码,在添加更多项目之前测试是否添加了任何内容。

有没有更好的解决方案?

【问题讨论】:

    标签: vb.net combobox


    【解决方案1】:

    您在每次点击时添加项目,而不检查该项目是否真的在组合框中。您应该在存在相同项目之前检查,如果没有,则添加它。

    Private Sub cmbStock_Click(sender As Object, e As EventArgs) Handles cmbStock.Click
            cmbStock.ResetText()
            cmbStock.SelectedIndex = -1
            If Not cmbStock.Items.Contains(ProdDesc(0)) Then
                cmbStock.Items.Add(ProdDesc(0))
            End If
        End Sub
    

    【讨论】:

    • 天啊!!就这么简单!!非常感谢,现在我会默默地用头撞墙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2011-06-23
    • 2017-08-21
    相关资源
    最近更新 更多