【问题标题】:Adding to a listbox in VB添加到VB中的列表框
【发布时间】:2016-10-25 05:00:09
【问题描述】:
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
    Dim name As String = txtNames.Text
    For i = 0 To lstbxNames.Items.Count - 1
        If name = Str(lstbxNames.Items(i)) Then
            MsgBox("This name is already in the list.")
        Else
            lstbxNames.Items.Add(name)
        End If
    Next
End Sub

该项目不会被添加,但如果我将“lstbxNames.Items.Add(name)”放在 for 语句的顶部就会添加。

【问题讨论】:

  • lstbxNames 的类型是什么? lstbxNames.Items(i) 返回什么?它的类型是什么?如果您监视该表达式并跟踪您的代码,您会得到什么?
  • 你好罗伯特,lstbxNames.Items(i) 应该返回列表框中的每一项,不知道你说的lstbxNames 的类型是什么意思,它只是一个vb 的列表框。当我从列表框中返回项目时,我添加了“Str”,这使它们成为字符串类型。

标签: vb.net listbox


【解决方案1】:

您的 FOR 循环 几乎没有问题。正如我所看到的,您多次插入相同的 name 并且对于 msg 框也是如此。您可以在使用 contains 方法添加之前直接检查列表框中已存在的值。

并且在将其添加到列表之前,您必须检查您的文本框是否为空。

    Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
        Dim name As String = txtNames.Text
        if (!string.IsNullOrEmpty(name)) Then  
           if (!lstbxNames.Items.Contains(name)) Then
              lstbxNames.Items.Add(name);
          else
             MsgBox("This name is already in the list.");
        End If
    End Sub

【讨论】:

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