2016-05-26 4 views
0

Я сижу с проблемой, которая меня озадачила. Я кодирую приложение VB, где пользователи вводят запас в массив в одной форме. В другой форме у меня есть combobox, который заполняется из этого массива, когда пользователь нажимает на ComboBox. Теперь каждый раз, когда я нажимаю на раскрывающийся список для combobox, в выпадающий список добавляется еще один элемент. В настоящее время в массиве есть только один элемент. Если я добавлю другой элемент в массив, количество предметов удваивается при каждом нажатии.VB Combobox not reseting данные

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(), но то же самое происходит, что и выше. Я даже пытался заставить его показать только один элемент из массива (как указано выше)

Кажется, что это должно сработать, только другая вещь, о которой я могу думать, - написать больше кода, который будет проверять, добавлен перед добавлением дополнительных элементов.

У кого-нибудь есть лучшее решение, пожалуйста?

ответ

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 
+0

OMW !! Так просто! Огромное вам спасибо, теперь я буду тихо стучать головой о стену. – StBlade

+1

Ха-ха, все мы делаем глупые ошибки. –

Смежные вопросы