2016-11-23 2 views
-1

У меня есть comboBox в моем приложении winforms, которое заполняется на основе данных из моей базы данных SQL Express, оно увеличивается каждый раз, когда пользователь нажимает кнопку «следующая запись». Который имеет этот простой код, который делает операцию:как обрабатывать конец comboBox

comboBox4.SelectedIndex = comboBox4.SelectedIndex + 1; 

Как бы обрабатывать исключения, когда он достиг конца COMBOBOX? Потому что, когда он достигает конца, нет никакого значения, чтобы перейти к следующему после выполнения кода выше. Как я могу сказать, что появилось сообщение MessageBox, в котором говорится: «Вы дошли до конца своего comboBox?»

+3

Что вы пытаетесь? С 'if()' и 'comboBox4.Items.Count' вы придете довольно далеко. – CodeCaster

ответ

3

Вы можете проверить Items.Count ComboBox, прежде чем приращать SelectedIndex.

if (comboBox1.SelectedIndex < comboBox1.Items.Count - 1) 
    comboBox1.SelectedIndex += 1; 
1

Поскольку вы извлекаете из SQL Express, вы можете идентифицировать COUNT этих записей. Это позволит вам узнать общее количество таких записей. Скажем, вы сохраняете его в переменной типа int с именем Count.

Вы можете написать свой код, как:

int count = //get the total number of such records from the database 
if (comboBox4.SelectedIndex != (count -1)) 
{ 
    comboBox4.SelectedIndex = comboBox4.SelectedIndex + 1; 
} 

Надеется, что это помогает !!!

+0

'comboBox4.SelectedIndex = comboBox4.SelectedIndex ++' не совпадает с 'comboBox4.SelectedIndex = comboBox4.SelectedIndex + 1'. Удаление кода не всегда является упрощением. Вам также не нужно делать другой запрос к базе данных, чтобы сделать счет, вы назначили элементы в поле со списком, так что вы можете просто использовать 'Items.Count'. – CodeCaster

+0

@CodeCaster Я получаю вашу мысль. В этом контексте это правильно. –

+0

Да, удалите абзац упрощения, он ничего не добавляет. Вы тоже отключены одним, SelectedIndex основан на нуле. – CodeCaster

Смежные вопросы