Индекс Radiobutton.Tag вышел за границы массива C# Winforms
Решил в программе сохранять позиции Radiobutton'ов через теги и параметры, которые записываю в свойствах проекта. Сделал с одним набором Radiobutton'ов - получилось, решил сделать второй, но тут уже начались проблемы, так как программа начала выдавать исключение о выходе за границы массива.
private void button3_Click(object sender, EventArgs e)
{
Properties.Settings.Default.checkedRB = checkedRB;
Properties.Settings.Default.checkedRB1 = checkedRB1;
Properties.Settings.Default.Save();
Parent.Show();
Close();
}
void rb_CheckedChanged(object sender, EventArgs e) //обработчик CheckedChanged для каждого radiobutton
{
if ((sender as RadioButton).Checked)
{
checkedRB = int.Parse((sender as RadioButton).Tag.ToString());
}
}
void rb1_CheckedChanged(object sender, EventArgs e) //обработчик CheckedChanged для каждого radiobutton
{
if ((sender as RadioButton).Checked)
{
checkedRB1 = int.Parse((sender as RadioButton).Tag.ToString());
}
}
private void Form2_Load_1(object sender, EventArgs e)
{
FormClosing += Form2_FormClosing;
checkedRB1 = Properties.Settings.Default.checkedRB1;
(new RadioButton[] { radioButton1, radioButton2 })[checkedRB1].Checked = true;
if (radioButton1.Checked == true)
{
infoLabel.Text = "Текущие дата и время:";
toolStripStatusLabel1.Items.Add(infoLabel);
toolStripStatusLabel1.Items.Add(dateLabel);
toolStripStatusLabel1.Items.Add(timeLabel);
timer = new Timer() { Interval = 1000 };
timer.Tick += timer_Tick;
timer.Start();
}
else if (radioButton2.Checked == true)
{
infoLabel.Text = "Текущие дата и время:";
toolStripStatusLabel1.Items.Add(infoLabel);
dateLabel.Text = DateTime.Now.Date.ToString();
toolStripStatusLabel1.Items.Add(dateLabel);
DayLabel.Text = DateTime.Now.DayOfWeek.ToString();
toolStripStatusLabel1.Items.Add(DayLabel);
}
checkedRB = Properties.Settings.Default.checkedRB;
(new RadioButton[] { radioButton3, radioButton4, radioButton5, radioButton6 })[checkedRB].Checked = true;
}
Жалуется вот на эту строку:
(new RadioButton[] { radioButton1, radioButton2 })[checkedRB1].Checked = true;
Код вызова второй формы:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
//2.TopLevel = false;
Hide();
f2.ShowDialog(this);
//f2.StartPosition = StartPosition;
}