我有一个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的哪一列,以便我不为这两列运行此代码?
我错过了更好的方法吗?
答案 0 :(得分:3)
e.Control.EditingControlDataGridView.CurrentCell.ColumnIndex怎么样?
或者只是DGV.CurrentCell.ColumnIndex?