2014-08-28 128 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