2014-08-28 92 views
-2

我实际上正在使用一个考勤系统,使用listbox我想监视“员工”是否进入或离开时间。 txtEmpNum.text作为我的文本框, rdTin作为我单选按钮的时间, rdTout作为我的单选按钮超时, lblName,lblDept,lblinout只是标签。我想,如果一个用户已经在他/她的名字中出现的时间不会出现在我的列表框上,而是弹出msgbox。但是在这个代码中,虽然msgbox被强化了,但员工的名字仍然出现在我的列表框中。VB.NET LISTBOX [输入和输出]

If txtEmpNum.Text = 8888 Then 
     If rdTin.Checked = True Then 
      For i As Integer = 0 To listEmp.Items.Count - 1 
       If (listEmp.Items(i).ToString.Contains("Bane Lim")) Then 
        MsgBox("String found at " & (i + 1).ToString) 
        Exit For 
       End If 
      Next 
      lblName.Text = "Bane" 
      lblDept.Text = "Admin" 
      lblinout.Text = "In" 
      listEmp.Items.Add("Bane Lim") 
      txtEmpNum.Clear() 

     ElseIf rdTout.Checked = True Then 
      lblName.Text = "Bane" 
      lblDept.Text = "Admin" 
      lblinout.Text = "Out" 
      listEmp.Items.Remove("Bane Lim") 
      txtEmpNum.Clear() 
     End If 
+0

在您展示MSGBOX相同的代码块,你也加入“贝恩廉”到列表中。我错过了什么吗? – 2014-08-28 15:04:23

回答

0

问题名称是第二次出现?你会想要退出子或退出功能,而不是退出。 Exit For从循环中踢出它,但继续使用剩余的代码(再次添加)。

否则在添加标记有这样的:

If txtEmpNum.Text = 8888 Then 
     If rdTin.Checked = True Then 
      Dim bolFound As Boolean = False 
      For i As Integer = 0 To listEmp.Items.Count - 1 
       If (listEmp.Items(i).ToString.Contains("Bane Lim")) Then 
        MsgBox("String found at " & (i + 1).ToString) 
        bolFound = True 
        Exit For 
       End If 
      Next 
      If Not bolFound Then 
       lblName.Text = "Bane" 
       lblDept.Text = "Admin" 
       lblinout.Text = "In" 
       listEmp.Items.Add("Bane Lim") 
       txtEmpNum.Clear() 
      End If 


     ElseIf rdTout.Checked = True Then 
      lblName.Text = "Bane" 
      lblDept.Text = "Admin" 
      lblinout.Text = "Out" 
      listEmp.Items.Remove("Bane Lim") 
      txtEmpNum.Clear() 
     End If 
+0

哦,是的。感谢它现在运行良好^ _ ^ – 2014-08-28 15:35:12