【问题标题】:VB6 Listbox CopyingVB6 列表框复制
【发布时间】:2014-12-17 19:34:14
【问题描述】:

使用 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 ... ?

提前致谢。

【问题讨论】:

  • 没有理由不应该工作。您确定要在对方法的调用中传递 ListBoxes 吗?
  • @jac :抱歉,当我发布我的答案时,我还没有看到你的评论......
  • 我传递的是列表框而不是组合框,我怎么看不到,Hrqls 搞定了。谢谢。

标签: winforms vb6 listbox-control


【解决方案1】:

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

'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

要解决这个问题,您可以使用 Listbox 控件或更改您的 sub 以使用 Combobox 控件:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多