Странное поведение ListBox

S_Shmall
Дата: 07.04.2014 18:22:21
На форме есть два 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 ничему не равно и поля не заполняются.
Winnipuh
Дата: 07.04.2014 19:00:23
"//Здесь заполняется первый набор данных, который загружается в ListBox"

а где же сама загрузка в листбокс?
S_Shmall
Дата: 07.04.2014 19:07:29
Так дело-то не в загрузке в ListBox, там как раз все нормально на мой взгляд. Список-то формируется, не отрабатывает инициализация. Но если надо, то вот к примеру аналогичная:
  
         oleDbSelectCommand1.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE (CompanyName LIKE ? + '%')";
         oleDbSelectCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter());
         oleDbSelectCommand1.Parameters[0].Value = "A";
pation
Дата: 08.04.2014 15:23:12
S_Shmall
Так дело-то не в загрузке в ListBox

дело именно в загрузке, используешь ли ты BindingSource?