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

相关问题