复制一个combobox项目列表,而不影响当前写在combobox内的内容?
如何重新填充combobox项目列表,而不影响当前写在combobox内的内容?
我目前有代码,看起来有点像:
Private Sub ComboBox1_DropButtonClick() Dim v As Variant Dim selText As String selText = ComboBox1.selText Dim i As Integer For i = 0 To ComboBox1.ListCount - 1 ComboBox1.RemoveItem (0) Next i v = Call CreateList() For i = 0 to Ubound(v) ComboBox1.AddItem v(i) Next v If selText <> "" Then ComboBox1.Text = selText End Sub
我之前没有使用combobox,所以可能有更好的方法。 上面的代码有几个问题
- 它会更改combobox的选定值(在尝试恢复之前)
- 它触发Combobox1_change事件
- 有我认为可能是不必要的循环。 是可以删除所有项目没有循环和添加多个项目没有循环。 要添加的项目由具有逗号分隔值的string创build。
我真的很感激帮助
有我认为可能是不必要的循环。 是可以删除所有项目没有循环和添加多个项目没有循环。
ComboBox1.Clear
将删除所有项目没有循环。 添加后,您可以使用.List
创build循环后添加项目到combobox。
Private Sub Sample() Dim MyAr(1 To 5) For i = 1 To 5 MyAr(i) = i Next i ComboBox1.List = MyAr End Sub
它触发Combobox1_change事件
要防止Combobox1_change event
,您将不得不使用像这样的布尔variables
它会更改combobox的选定值(在尝试恢复之前)
将值存储在variables中,然后重置combobox值,如果该值是下拉列表的一部分