vinodh muthusamy Ответов: 1

Чтобы получить выбранный элемент управления-поле со списком динамических


Я создал comboBox динамически. Но мне нужно выбрать значение из "SelectedIndexChanged". Но ведь я получаю ошибку как "Ссылка на объект не установлена на экземпляр объекта."

 private ComboBox TimeIntervel;
int Stimer; 
public void set control()
{
   ComboBox TimeIntervelCmb = new ComboBox();

 TimeIntervelCmb.Location = new Point(50,70);
            TimeIntervelCmb.Name = "ComboBoxTime";
            TimeIntervelCmb.Size = new Size(80, 100);
            TimeIntervelCmb.Items.Add("500");
            TimeIntervelCmb.Items.Add("1000");
            TimeIntervelCmb.Items.Add("2000");
            TimeIntervelCmb.Items.Add("3000");
            TimeIntervelCmb.Items.Add("4000");
            TimeIntervelCmb.Items.Add("5000");
            TimeIntervelCmb.Items.Add("6000");

TimeIntervelCmb.SelectedIndexChanged += new EventHandler(TimeIntervel_SelectedIndexChanged);
            this.Controls.Add(TimeIntervelCmb);
}
  private void TimeIntervel_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
               
                
                if (TimeIntervel.SelectedItem  != null)// Object reference not set to an instance of an object.-Error
                {
                    Stimer = int.Parse(TimeIntervel.SelectedItem.ToString());
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }


Что я уже пробовал:

Пожалуйста, предоставьте мне решение для этого.

частная TimeIntervel_SelectedIndexChanged недействительным(объект отправителя, EventArgs в электронной)
{
пробовать
{


if (TimeIntervel.SelectedItem != null)
{
Стимер = инт.Синтаксический Анализ(TimeIntervel.Элемент.Метод toString());
}
}
поймать (исключение бывший)
{

Ящик для сообщений.Показать (например, сообщение);
}
}

1 Ответов

Рейтинг:
7

User 11061201

Вы пытаетесь справиться с

private ComboBox TimeIntervel;

но вместо этого вы создали другую, и TimeIntervel не заселен. Переименовать TimeIntervel к TimeIntervelCMB


private ComboBox TimeIntervelCMB;
int Stimer; 
public void set control()
{
   ComboBox TimeIntervelCmb = new ComboBox();
 
            TimeIntervelCmb.Location = new Point(50,70);
            TimeIntervelCmb.Name = "ComboBoxTime";
            TimeIntervelCmb.Size = new Size(80, 100);
            TimeIntervelCmb.Items.AddRange({500,1000,2000,3000,4000,5000,6000});


vinodh muthusamy

спасибо.
он прекрасно работает.

[no name]

пометьте этот поток как решенный, приняв это решение