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语句的顶部。
答案 0 :(得分:0)
您的 FOR循环几乎没有问题。我可以看到,你为msg框多次插入相同的名称。您可以直接检查列表框中已存在的值,然后使用包含方法添加到该列表中。
在将文本框添加到列表之前,您必须检查文本框是否为空。
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