2016-11-07 13 views
0

У меня возникли некоторые проблемы с делать что-то, что кажется очень простой, но я просто не знаю, что я делаю неправильно ....Выполнение действий при выборе значения выпадающий

На Form_Load я заселить combobox с

Datasource 
DisplayMember 
ValueMember 

Здесь я устанавливаю .selectedindex = - 1, так что ничего не выбрано. Комбобокс заполняется должным образом, и все звучит.

Теперь, когда пользователь выбирает что-то из раскрывающегося списка, я хочу заполнить DataGrid связью информации, основанной на выбранном VALUE. Поэтому я передаю и ID в функцию, которая заполняет DataGrid.

Я пытаюсь сделать это, как это ...

Private Sub cbo1_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbo1.SelectedValueChanged 
    dim productID as string="" 

    cbo1.SelectedValue = ProductID 
    Call PopulateProductGrid(ProductID) 
End Sub 

Я также tryined с SelectedIndexChanged, но и для события я получаю ошибку

Не удается установить SelectedValue в ListControl с пустым ValueMember.

+0

Звук, подобный «ComboBox», не связан, эта ошибка более чем вероятна из этого. Пожалуйста, покажите, как вы назначаете «DataSource», «DisplayMemeber» и «ValueMember» ... Также не помешает показать, что «PopulateProductGrid» делает ... В другом примечании вы уверены, что это «DataGrid» и *** не DataGridView ***? Также вы устанавливаете значение в событии, я думаю, что вы хотите назначить 'ProductID = cbo1.SelectedValue' *** не ***' cbo1.SelectedValue = ProductID', что, скорее всего, является ошибкой, которую вы получаете. – Codexer

+0

Почему вы пытаетесь установить значение в событии 'SelectedValueChanged'? Откуда появился «ProductID»? – Plutonix

+0

@zaggler = DataGridView - и да, это правильно связано - потому что когда я делаю это на Button_Click - он отлично работает (как в заполнении datagridview). Я объявляю ProductID как Integer, и выбранное значение - это то, что я ему присваиваю, и передаю его моему PopulateProductGrid. – BobSki

ответ

2

Я стану утверждать, что проблема в том, что вы являетесь обязательным в неправильном порядке. Вы всегда должны установить DataSource последним, а не первым. Попытайтесь изменить это и посмотреть, исчезнет ли ваша проблема. Проблема в том, что установка DataSource означает, что элемент управления привязан, поэтому элемент будет выбран и соответствующие события будут подняты до того, как вы установите DisplayMember и ValueMember.