SelectedIndex объекта DataGridViewComboBoxCell? VB.NET - PullRequest
3 голосов
/ 21 марта 2012

Как установить SelectedIndex для DataGridViewComboBoxCell?

Код заполняет поле со списком, но мне нужно выбрать один из них

Мой код:

 Dim cListItems As New System.Collections.Generic.List(Of Combobox_values)

                If ds.Tables("items_prices").Rows(0).Item("item_selldozen") > 0 Then
                    Dim item_selldozen As String = ds.Tables("items_prices").Rows(0).Item("item_selldozen")
                    cListItems.Add(New Combobox_values("Docena (" + item_selldozen + ")", item_selldozen))
                End If


                Dim dgvcbc As DataGridViewComboBoxCell = DirectCast(CType(main.ActiveMdiChild, discount_new_discount).discountitems_new_discount.Rows(last_row).Cells(3), DataGridViewComboBoxCell)

                dgvcbc.DataSource = cListItems 'Fill Remote Comboboxcell
                dgvcbc.DisplayMember = "Text"
                dgvcbc.ValueMember = "Value"

1 Ответ

4 голосов
/ 21 марта 2012

Если у вас есть ComboBoxColumn в вашем DataGridView, и вы хотите знать, какой индекс выбран в поле со списком, то вам нужно сделать это:

  1. Обработать событие EditingControlShowingDataGridView.В этом обработчике событий проверьте, представляет ли текущий столбец наш интерес.Затем мы создаем временный объект ComboBox и получаем выбранный индекс:
Private Sub dataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs)
    If dataGridView1.CurrentCell.ColumnIndex = 0 Then
        ' Check box column
        Dim comboBox As ComboBox = TryCast(e.Control, ComboBox)
        comboBox.SelectedIndexChanged += New EventHandler(AddressOf comboBox_SelectedIndexChanged)
    End If
End Sub


Private Sub comboBox_SelectedIndexChanged(sender As Object, e As EventArgs)
    Dim selectedIndex As Integer = DirectCast(sender, ComboBox).SelectedIndex
    MessageBox.Show("Selected Index = " & selectedIndex)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...