我正在编写一个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(),但同样的情况如上所述。我甚至试图强制它只显示数组中的一个项目(如上所述)
它似乎应该可以工作,只有我能想到的其他事情是编写更多代码,在添加更多项目之前测试是否添加了任何内容。
有更好的解决方案吗?
答案 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