Получение даты сформируйте три поля со списком как дд / мм / гггг, используя c # - PullRequest
0 голосов
/ 05 октября 2019

я не могу получить datetime из 3 комбинированных списков, я просто могу заполнить его циклом for, но это неверно, когда условие остановлено):

так как получить объект DateTime из трех комбинированных списков в виде дд / мм/ yyyy, combobox1 для дня, cobmobox2 для месяца и combobox3 для года

{
private void Form1_Load(object sender, EventArgs e)
{
//date of birth
this.comboBox3.Leave += new EventHandler(comboBox3_Leave);
this.comboBox1.Leave += new EventHandler(comboBox3_Leave);
this.comboBox2.Leave += new EventHandler(comboBox3_Leave);

for (int i = 1950; i < 2012; i++)
{
comboBox3.Items.Add(i.ToString());
}

for (int i = 1; i < 32; i++)
{
comboBox1.Items.Add(i.ToString());
}

comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
comboBox3.SelectedIndex = 0;
}
}

, и я создаю событие «Оставить» для combobox3

 private void comboBox3_Leave(object sender, EventArgs e)
 {
 int day = DateTime.DaysInMonth(Convert.ToInt32(comboBox3.Text), 
 comboBox2.SelectedIndex + 1);
 if (day <= comboBox1.SelectedIndex)
 {
 //alert message or your managing code.
 }

 }

, ошибка System.ArgumentOutOfRangeException: 'Значение InvalidArgument '0' не является допустимым для 'SelectedIndex'. выбранный индекс месяца

1 Ответ

1 голос
/ 05 октября 2019

comboBox2 не инициализируется с элементами. Так как comboBox2 не имеет никаких элементов, и вы пытаетесь выбрать первый элемент в comboBox2.SelectedIndex = 0;, он падает.

Добавьте comboBox2.Items.Add("Test"); где-то до comboBox2.SelectedIndex = 0;, и он должен "работать". И когда ваш код работает, вы можете добавить соответствующий элемент в comboBox2.

...