private void ListBox1_SelectedIndexChanged(object sender, EventArgs e) {//Если выделен список в listBox1, отображаем инф. о списке if (listBox1.SelectedIndex != -1) { label4.Visible = true; label6.Visible = true; label7.Visible = true; textBox2.Visible = true; listBox3.Visible = true; textBox3.Text = ""; listBox3.Items.Clear(); //Работаем с выделенным списком ListNodes MySelectedItem = new ListNodes(); MySelectedItem = GetParameter <ListNodes>(listBox1.SelectedItem); //Определяем длину списка, выводим информацию о списке if (MySelectedItem.IsListEmpty()) { textBox2.Text = "0"; } else { PrintInBoxFromLeft(listBox3, MySelectedItem); label5.Visible = false; textBox3.Visible = false; } label6.Text = "Состояние списка " + MySelectedItem.Name; label6.ForeColor = Color.Red; } }
//Клик по кнопке "Выполнить" private void Button2_Click(object sender, EventArgs e) {//Проверяем, выделен ли список if (listBox1.SelectedIndex == -1) { MessageBox.Show("Выберите список!"); }//Если выделен 1 список else if (listBox1.SelectedItems.Count == 1) {//Проверяем, выбрана ли операция ListNodes MySelectedItem = new ListNodes(); MySelectedItem = GetParameter <ListNodes>(listBox1.SelectedItem); string myListItem = textBox1.Text.Trim(); if (listBox2.SelectedIndex == -1) { MessageBox.Show("Выберите операцию!"); }//Если выделена операция "Добавить справа" else if (listBox2.SelectedItem.ToString() == MySelectedItem.AddRightName) { if (myListItem == string.Empty) { MessageBox.Show("Введите значение в текстовое поле!"); } else {//Добавляем справа MySelectedItem.AddRight(Convert.ToInt32(myListItem)); textBox2.Text = Convert.ToString(MySelectedItem.Size); listBox3.Items.Clear(); PrintInBoxFromLeft(listBox3, MySelectedItem); label7.Text = "Элементы, начиная с головы (слева)"; } }//Если выделена операция "Добавить слева" else if (listBox2.SelectedItem.ToString() == MySelectedItem.AddLeftName) { if (textBox1.Text.Trim() == string.Empty) { MessageBox.Show("Введите значение в текстовое поле!"); } else { MySelectedItem.AddLeft(Convert.ToInt32(myListItem)); textBox2.Text = Convert.ToString(MySelectedItem.Size); listBox3.Items.Clear(); PrintInBoxFromLeft(listBox3, MySelectedItem); label7.Text = "Элементы, начиная с головы (слева)"; } }//Если выделена операция "Выделить голову справа" else if (listBox2.SelectedItem.ToString() == MySelectedItem.SelectHeadRightName) { if (MySelectedItem.IsListEmpty()) { MessageBox.Show("Список пуст!"); } else { label7.Text = "Элементы, начиная с головы (справа)"; label5.Visible = true; textBox3.Visible = true; listBox3.Items.Clear(); textBox3.Text = MySelectedItem.HeadRight().ToString(); PrintInBoxFromRight(listBox3, MySelectedItem); } } //Если выделена операция "Выделить голову слева" else if (listBox2.SelectedItem.ToString() == MySelectedItem.SelectHeadLeftName) { if (MySelectedItem.IsListEmpty()) { MessageBox.Show("Список пуст!"); } else { label7.Text = "Элементы, начиная с головы (слева)"; label5.Visible = true; textBox3.Visible = true; listBox3.Items.Clear(); textBox3.Text = MySelectedItem.HeadLeft().ToString(); PrintInBoxFromLeft(listBox3, MySelectedItem); } } //Если выделена операция "Выделить хвост (слева направо)" else if (listBox2.SelectedItem.ToString() == MySelectedItem.TailIfCountFromLeftName) { if (MySelectedItem.IsListEmpty()) { MessageBox.Show("Список пуст!"); } else { MySelectedItem = MySelectedItem.TailIfCountFromLeft(); label7.Text = "Элементы, образующие хвост (слева направо)"; label5.Visible = false; textBox3.Visible = false; listBox3.Items.Clear(); PrintInBoxFromLeft(listBox3, MySelectedItem); } } //Если выделена операция "Выделить хвост (справа налево)" else if (listBox2.SelectedItem.ToString() == MySelectedItem.TailIfCountFromRightName) { MySelectedItem = MySelectedItem.TailIfCountFromRight(); label7.Text = "Элементы, образующие хвост (справа налево)"; label5.Visible = false; textBox3.Visible = false; listBox3.Items.Clear(); PrintInBoxFromRight(listBox3, MySelectedItem); textBox2.Text = MySelectedItem.Size.ToString(); } //Если выделена операция "Соединить списки" else if (listBox2.SelectedItem.ToString() == MySelectedItem.MergeListsName) { MessageBox.Show("Выберите два списка!"); } } //Если выделены 2 списка else if (listBox1.SelectedItems.Count == 2) { //listBox2.SetSelected(1, false); ListNodes FirstSelectedItem = new ListNodes(); FirstSelectedItem = GetParameter <ListNodes>(listBox1.SelectedItems[0]); ListNodes SecondSelectedItem = new ListNodes(); SecondSelectedItem = GetParameter <ListNodes>(listBox1.SelectedItems[1]); //Если выбрана операция "Соединить списки" if (listBox2.SelectedItem.ToString() == FirstSelectedItem.MergeListsName) { listBox4.Items.Clear(); label10.Text = "Результирующий список " + FirstSelectedItem.Name; textBox2.Text = FirstSelectedItem.Size.ToString(); FirstSelectedItem.MergeLists(SecondSelectedItem); PrintInBoxFromLeft(listBox4, FirstSelectedItem); textBox4.Text = FirstSelectedItem.Size.ToString(); PrintInBoxFromLeft(listBox3, SecondSelectedItem); label6.Text = "Состояние списка " + SecondSelectedItem.Name; } else { MessageBox.Show("Неверное действие! Прочтите руководство по использованию, нажав на кнопку 'Помощь'"); } } else { MessageBox.Show("Неверное действие! Прочтите руководство по использованию, нажав на кнопку 'Помощь'"); } }