На форме есть два DataSet, которые заполняются запросами с параметрами. Для второго DataSet параметр выбирается из ListBox.
Код такой:
private void Form1_Load(object sender, EventArgs e)
{
//Здесь заполняется первый набор данных, который загружается в ListBox
oleDbDataAdapter1.Fill(dataSet11);
listBox1.SelectedIndex = listBox1.Items.Count - 1;
}
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
dataSet21.Clear();
if (listBox1.SelectedIndex != -1)
{
oleDbSelectCommand2.Parameters[0].Value = listBox1.SelectedValue;
oleDbDataAdapter2.Fill(dataSet21);
}
}
На форме есть поля, которые заполняются в зависимости от значения в ListBox. Странность в том, что, если в ListBox отбирается более одного значения, то при загрузке формы все нормально, listBox1.SelectedValue равно последнему значению в списке. Если же в списке только одно значение, то listBox1.SelectedValue ничему не равно и заполнения полей при загрузке списка не происходит. Если же принудительно щелкнуть в listBox1 на этом единственном значении, то все нормально отрабатывает. Причем попытка при инициализации принудительно выбирать listBox1.SelectedIndex = 0 при любом количестве элементов в списке приводит к тому, что при первичной инициализации listBox1.SelectedValue ничему не равно и поля не заполняются.