[英]vb.net combox box within a datagrid
我有一個帶有數據網格的組合框,但是我希望用戶能夠像往常一樣鍵入組合框; 在一分鍾內它是固定的下拉列表。 這是我的代碼:
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
您本來就不需要處理兩個事件
第一個允許用戶輸入新值的
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
第二個實際插入新值
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.