Я работаю над очень простым приложением времени для работы. У меня есть поле со списком, в котором заполняются имена сотрудников, а также поле списка, в котором отображаются, кто из сотрудников зарегистрирован. Если сотрудник уже зарегистрирован (отображается в списке ListIn), то субтаймер должен уведомить пользователя и выйти, не пытаясь добавить человека в поле ListIn снова. К сожалению, я получаю сообщение «уже синхронизировано», но человек снова добавляется в поле ListIn.VB.NET - невозможно выйти из цикла For/Next
Вот мой код:
Private Sub btnIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIn.Click
For i As Integer = 0 To listIn.Items.Count - 1
If (listIn.Items(i).ToString.Contains(cboEmployees.SelectedItem)) Then
MsgBox("Error - employee is already clocked in.", vbOKOnly, "Error")
Exit For
Else
listIn.Items.Add(cboEmployees.SelectedItem)
timerDateTime.Stop() ' Turn off the timer, prepare to display the clock-in label.
lblTime.Text = "Success!"
lblDate.Text = "You are clocked in."
timerLabel.Start() ' Turn on the timer for the clock-in label.
End If
Next
cboEmployees.SelectedIndex = 0 ' After clocking in, set dropdown box to blank, disables buttons again.
listIn.Refresh()
End Sub
Любой помощь с этим небольшим вопросом будет наиболее высокой оценкой. Я использую VB.NET 2010 Professional, если это имеет значение.
Спасибо всем.
Вы пробовали _debugging_ it? –
a) Включить параметр Strict b) Вы добавляете в список в цикле, чтобы после того, как вы его запустили, вы также должны получить уже синхронизированный в msg. C) Если элементы управления использовали DataSource, вы, вероятно, могли бы фильтровать это довольно легко. – Plutonix