2009-12-16 43 views
3

我有一個DataGridView負責顯示一些數據,我的兩個列允許用戶使用組合框輸入。檢測哪個列顯示在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中編輯控件來自哪個列,以便我不爲這兩列運行此代碼?

我是否錯過了這樣做的更好方法?

回答

3

怎麼樣e.Control.EditingControlDataGridView.CurrentCell.ColumnIndex?

或者只是DGV.CurrentCell.ColumnIndex?

+0

完美地工作!謝謝!有那麼多控制,我很容易迷路。 – jrsconfitto 2009-12-17 14:39:31

+0

如果我想檢查標題文本,該怎麼辦?就像... '如果DGV.Column.HeaderText =「xyz」那麼' – Arbaaz 2013-11-11 04:24:17

+0

Nevermind,我找到了解決方案.. 'If DataGridView1.Columns(DataGridView1.CurrentCell.ColumnIndex).HeaderText =「Enter Quantity」Then' – Arbaaz 2013-11-11 04:42:21

相關問題