Определить, в каком столбце отображается элемент управления для редактирования в представлении данных - PullRequest
3 голосов
/ 17 декабря 2009

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

Проблема в том, что один столбец должен отображать только предустановленные значения в своем списке, а другой должен отображать предустановки и позволять пользователю вводить собственные значения.

Я выполняю это, показывая элемент управления для редактирования списка со следующим битом кода:

Private Sub DGV_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DGV.EditingControlShowing
    'todo: figure out which control is being edited (the reason or the action) and only allow the action column to allow user input
    If TypeOf e.Control Is DataGridViewComboBoxEditingControl Then
        Dim cb As ComboBox = e.Control
        cb.DropDownStyle = ComboBoxStyle.DropDown
    End If
End Sub

Это позволяет вводить пользователя в обоих комбинированных списках в DGV, но я хочу разрешить ввод данных только для одного из них.

Есть ли способ определить, из какого столбца в DGV поступает элемент управления редактированием, чтобы я не запускал этот код для обоих столбцов?

Мне не хватает лучшего способа сделать это?

1 Ответ

3 голосов
/ 17 декабря 2009

Как насчет e.Control.EditingControlDataGridView.CurrentCell.ColumnIndex?

Или, может быть, просто DGV.CurrentCell.ColumnIndex?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...