Ejemplo n.º 1
0
 //Клик по кнопке "Выполнить"
 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("Неверное действие! Прочтите руководство по использованию, нажав на кнопку 'Помощь'");
     }
 }