ComboBox не стреляет избранным, при разработке программного выбора индекса 0 (из -1)C#

Место общения программистов C#
Anonymous
 ComboBox не стреляет избранным, при разработке программного выбора индекса 0 (из -1)

Сообщение Anonymous »

У меня есть Combobox, для которого я использую событие SelectIndExchanged для захвата как пользователя, так и программно изменений. 1 Естественно. < /P>
Но тогда с SelectedIndex = -1 < /p>

Код: Выделить всё

combobox1.SelectedIndex = 0 ; // will NOT fire the event.
< /code>
Но < /p>
combobox1.SelectedIndex = 1 ; // or higher number WILL fire the event.
В обоих случаях я программно изменяю SelextedIndex и ожидаю, что событие будет запущено.
Я проверил поведение в простой форме.
namespace cmbTest
{
public partial class Form1 : Form
{
private BindingList items = new BindingList();

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DataSource = items;
loadItems();
}

private void loadItems()
{
items.Add("chair");
items.Add("table");
items.Add("coffemug");
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("Fired with selected item index:" + comboBox1.SelectedIndex);
}

private void button1_Click(object sender, EventArgs e)
{

int index = comboBox1.SelectedIndex;

// Clear and reload items for whatever reason.
items.Clear();
loadItems();

// try select old item index; if it doesnt exists, leave it.
try { comboBox1.SelectedIndex = index; }
catch { }
}
}
}
< /code>
Форма имеет Combobox1 и кнопку1. < /p>
Редактировать для ясности (я надеюсь): < /p>

Запустить программу < /li>
Выберите «стул». Сообщение "Запускается с выбранным индексом элементов: 0" < /li>
Кнопка нажима. Сообщение "Запускается с выбранным индексом элементов: -1" < /li>
Выберите «Таблица». Сообщение "Запускается с выбранным индексом элементов: 1" < /li>
Кнопка нажима. Сообщения «Опубликованы с выбранным индексом элемента: -1» и
», выпущенные с выбранным индексом элементов: 1». < /Li>
< /ol>
Я ожидаю получить два Сообщения при нажатии кнопки, когда выбирается «стул», так как я программно изменяет индекс на 0. < /p>
Итак, почему это не работает, как я ожидаю, и что будет приемлемо обходной путь?

Подробнее здесь: https://stackoverflow.com/questions/384 ... ng-index-0

Вернуться в «C#»