2014-08-28 2 views
-2

나는 실제로 "직원"의 시간 초과 또는 초과 여부를 모니터링하려는 listbox를 사용하여 출석 시스템을 작업하고있었습니다. 내 텍스트 상자에 txtEmpNum.text가 있습니다. 시간대 라디오 버튼으로 rdTin을 입력하십시오. 시간 제한을위한 라디오 버튼으로 rdTout을 입력하십시오. lblName, lblDept, lblinout는 라벨입니다. 나는 그/그녀의 이름에 시간이 초과 된 사용자가 내 목록 상자에 나타나지 않고 msgbox 팝업이 나타나기를 원한다. 그러나이 코드에서 msgbox가 팝업되었지만 여전히 직원의 이름이 내 목록 상자에 나타납니다.VB.NET LISTBOX [in and out]

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

:

그렇지처럼 거기에 플래그를 추가합니다. 내가 놓친 게 있니? –

답변

0

이름이 두 번째로 표시되는 문제입니까? Exit For가 아닌 Exit Sub 또는 Exit Function을 원할 것입니다. Exit For는 루프에서 실행 중이지만 나머지 코드로 계속 진행 중입니다 (다시 추가). 당신이있는 MsgBox을 보여주고있다 동일한 코드 블록, 당신은 또한 목록에 "파멸 임"을 추가 내

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

오, 네. 덕분에 지금은 잘 작동했습니다^_ ^ –