VB Combobox不重置数据

时间:2016-05-26 11:58:02

标签: vb.net combobox

我正在编写一个VB应用程序,用户将库存输入到一个表单上的数组中。在另一种形式上,我有一个组合框,当用户点击ComboBox时,该组合框将从该数组中填充。现在每当我点击组合框的下拉列表时,另一个项目就会被添加到组合框中。目前阵列中只有一个项目。如果我向数组中添加另一个项目,则每次点击都会使项目数量翻倍。

 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时它都会重置,然后再次加载。不是hapening。

我尝试将sub更改为cmbStock_OnFocus(),但同样的情况如上所述。我甚至试图强制它只显示数组中的一个项目(如上所述)

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

有更好的解决方案吗?

1 个答案:

答案 0 :(得分: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