2009-12-16 3 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

+0

헤더 텍스트를 확인하려면 어떻게해야합니까? like ... 'DGV.Column.HeaderText = "xyz"이면 ' – Arbaaz

+0

'해결책을 찾았습니다. 'If DataGridView1.Columns (DataGridView1.CurrentCell.ColumnIndex) .HeaderText = "수량 입력"그런 다음 – Arbaaz

관련 문제