0

我最近使用VB.net使用Visual Studio 2013 .Net 4.5構建了一個Windows窗體應用程序。我的一位用戶在使用該應用程序時向我展示了這一點。在datagridview中,如果他們點擊下拉按鈕,然後開始輸入,它會覆蓋原始下拉列表上的自動完成功能。我在這裏做錯了什麼?爲什麼在datagridview的combobox上使用自動完成時有兩個列表?

Private Sub Data_CreateOrder_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles Data_CreateOrder.EditingControlShowing 
    If Data_CreateOrder.CurrentCell.ColumnIndex = 0 AndAlso TypeOf e.Control Is ComboBox Then 
     With DirectCast(e.Control, ComboBox) 
       .DropDownStyle = ComboBoxStyle.DropDown 
       .AutoCompleteMode = AutoCompleteMode.SuggestAppend 
       .AutoCompleteSource = AutoCompleteSource.ListItems 
       .SelectAll() 
       .BackColor = Color.White 
     End With 
    End If 
End Sub 

screenshot properties

回答

0

您所看到的行爲應該可以預期的。作爲ComboBox,因爲(在你的屏幕截圖的背景下拉看到)項的完整列表將是可見的:

.DropDownStyle = ComboBoxStyle.DropDown 

項目的重疊列表中可見的建議追加項目,簡直就是縮小基於當前用戶輸入的列表。該列表顯示,因爲:

.AutoCompleteMode = AutoCompleteMode.SuggestAppend 

如果你希望用戶看到與他們輸入選項縮小列表,這種行爲應該可以預期的。如果您不希望顯示這個額外的下拉菜單,請刪除上面的代碼行。

0

我希望這可以幫助你

 
Private Sub AdvancedDataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles AdvancedDataGridView1.EditingControlShowing 
     Dim cbo As ComboBox 

     If TypeOf e.Control Is ComboBox Then`enter code here` 

      cbo = e.Control 

      cbo.DropDownStyle = ComboBoxStyle.DropDown 

      cbo.AutoCompleteMode = AutoCompleteMode.SuggestAppend 

      ' cbo.AutoCompleteSource = AutoCompleteSource.CustomSource 
      cbo.AutoCompleteSource = AutoCompleteSource.ListItems 



     End If 
    End Sub 

阿卜杜拉齊茲sebrou

相關問題