在列表框中键入不匹配

时间:2013-12-19 08:39:57

标签: vb.net listbox

我创建了一个用户表单,在那里我放置了一个列表框和2个文本框。

现在我的查询是当我选择一个项目,然后项目中的一些字符要显示在两个文本框中,当我尝试这样做时,我得到一个错误消息,类型不匹配请更正我

Option Explicit
Dim a() As String
Dim b() As String
Dim i As Long

Private Sub ListBox1_Click()
a = Split("meter, inch, foot, yard", ",")
b = Split("m, In, Ft, Yd", ",")
For i = 1 To ListBox1.ListCount

If ListBox1.Value(i, 0) = a(i) Then
   TextBox1.Value(i, 0) = b(i) And TextBox2.Value(i, 0) = b(i)
End If
Next
End Sub
Sub UserForm_Initialize()
a = Split("meter, inch, foot, yard", ",")
ListBox1.List = a
End Sub

感谢你

1 个答案:

答案 0 :(得分:0)

我不确定你想要完成什么,但你可以尝试以下内容。只需将ListBox中的MouseClick或SelectedIndexChanged事件添加到ListBox1_Click即可。我更喜欢第二个。并将表单的onFormLoad添加到ListBox1_Click。如果您将我的代码片段插入到空项目中,您可以检查它是否按照您希望的方式工作。

Sry但是有点难以预测你想要完成什么(:

无论如何,使用数据绑定仍有更清洁的解决方案。如果你感兴趣,请告诉我。但是我想说数据绑定更复杂。

这是代码

Public Class Form1

Dim a() As String = Split("meter, inch, foot, yard", ",")
Dim b() As String = Split("m, In, Ft, Yd", ",")

Private Sub ListBox1_Click(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseClick

    If ListBox1.SelectedIndex < 0 Then
        TextBox1.Text = String.Empty
        TextBox2.Text = String.Empty
    Else
        TextBox1.Text = a(ListBox1.SelectedIndex)
        TextBox2.Text = b(ListBox1.SelectedIndex)
    End If
End Sub

Private Sub onFormLoad(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    ListBox1.Items.AddRange(a)
End Sub
End Class