2011-09-12 3 views
1

나는 데이터 격자가있는 콤보 박스가 있지만 평소와 같이 콤보 상자에 입력 할 수있게하고 싶습니다. 분당 고정 드롭 다운입니다. 여기에 내 코드입니다 : 당신은 사용자가DataGrid 내의 vb.net combox 상자

Private Sub dataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles dataGridView1.EditingControlShowing 
    Dim c As ComboBox = TryCast(e.Control, ComboBox) 
    If c IsNot Nothing Then 
     c.DropDownStyle = ComboBoxStyle.DropDown 
    End If 
End Sub 

새로운 가치로 두 번째를 입력 할 수 있도록 두 가지 이벤트

첫 번째를 처리 할 필요가 기본적으로 없다

Dim NewColumn As New DataGridViewComboBoxColumn() 'Declare new DGV CC 

    With NewColumn 'Set Properties 
     .DataPropertyName = "NewColumn" 'Name 
     .HeaderText = "New Column" 'Heading 
     .DropDownWidth = 160 'Width Of DropDown Box 
     .Width = 90 'Display Width 
     '.MaxDropDownItems = 5 'How Many Items To Drop Down At A Time 
     .FlatStyle = FlatStyle.Flat 'Appearance 
     .DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox 

     .Items.Add("Screw Fix 1") 'Add Some Text Items 
     .Items.Add("Fix 1") 
     .Items.Add("3 Stone") 
     .Items.Add("34 Stone") 
     .Items.Add("5") 
     .Items.Add("6") 
     .Items.Add("7") 
     .Items.Add("8") 
     .Items.Add("9") 
     .Items.Add("10") 
    End With 
    dgDetails.Columns.Add(NewColumn) 'Add The Column 
+0

왜 표시된 이유는 무엇입니까 ?? – Shane

답변

3

실제로 새 값을 넣으십시오.

Private Sub dataGridView1_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handels dataGridView1.CellValidating 
    Dim comboBoxColumn As DataGridView.Column = dataGridView1.Columns("yourColumnName") 
    If e.ColumnIndex = comboBoxColumn.Index Then 
     Dim eFV As Object = e.FormattedValue 
     If Not comboBoxColumn.Items.Contains(eFV) Then 
      comboBoxColumn.Items.Add(eFV) 
        comboBoxColumn.SelectedIndex = ComboBox.Items.Count - 1 
     End If 
    End If 
End Sub 
+0

고마워요 - 그 코드에 추가했지만 comboBoxColumn이 정의되지 않았다면 어떻게 든 그것을 정의해야합니까? – Shane

+0

@Shane, 그건 당신의 콤보 상자에있는 열입니다. – msarchet

+0

그래, 그게 이해가 안 돼요, 내가 어떻게 그것을 참조합니까, 나는 콤보 상자 같은 것들을 시도했습니다 comboBoxColumn = dgDetails.Columns (2) – Shane