winforms - VB6 列表框复制

标签 winforms vb6 listbox-control

使用 Visual Basic 6.0,我尝试用一​​个列表框的项目填充另一个列表框的项目。

谁能解释一下为什么以下子程序无法正常工作, 将两个列表框作为参数传递时出现类型不匹配。

Public Sub copyListboxes(Byref lstFrom as Listbox, Byref lstTo as Listbox)
    Dim i as integer
    For i = 0 to lstFrom.Listcount -1
        lstTo.Additem lstFrom.List(i)
    Next i
End Sub

'Call copyListboxes(Listbox1,Listbox2) 'Type Mismatch ... ?

提前致谢。

最佳答案

我能够通过使用组合框而不是列表框来重现您的错误:

'1 form with:
'  1 command button: name=Command1
'  2 combobox controls: name=Listbox1 name=Listbox2
Option Explicit

Private Sub Command1_Click()
  Call copyListboxes(Listbox1, Listbox2) 'Type Mismatch!
End Sub

Public Sub copyListboxes(ByRef lstFrom As ListBox, ByRef lstTo As ListBox)
  Dim i As Integer
  For i = 0 To lstFrom.ListCount - 1
      lstTo.AddItem lstFrom.List(i)
  Next i
End Sub

Private Sub Form_Load()
  Dim intIndex As Integer
  For intIndex = 1 To 10
    Listbox1.AddItem CStr(intIndex)
  Next intIndex
End Sub

要解决此问题,您可以使用列表框控件或更改子控件以使用组合框控件:

Public Sub copyListboxes(ByRef lstFrom As ComboBox, ByRef lstTo As ComboBox)
  Dim i As Integer
  For i = 0 To lstFrom.ListCount - 1
      lstTo.AddItem lstFrom.List(i)
  Next i
End Sub

关于winforms - VB6 列表框复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27533415/

相关文章:

c# - 如何使图片框透明?

c# - .NET Compact Framework - 没有 ShowDialog 的模态表单

c# - 在文本框中,保护第一个单词,但允许添加/编辑这些单词之后的文本

string - 替换字符串 vb6 中除数字以外的所有内容

C# 想要限制表单可以移动到的位置

.net - 这是 "one in ten"重写的时间吗?

html - 为具有 -ve 文本缩进的段落应用背景颜色

c# - ListBox 已设置数据源但刷新不执行任何操作

winforms - 带有删除/删除按钮的列表