Ejemplo n.º 1
0
        private void ListBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListNodes MySelectedItem = new ListNodes();

            MySelectedItem = GetParameter <ListNodes>(listBox1.SelectedItem);
            if (listBox2.SelectedIndex != -1)
            {
                if (listBox2.SelectedItem.ToString() == MySelectedItem.AddRightName ||
                    listBox2.SelectedItem.ToString() == MySelectedItem.AddLeftName)
                {
                    label3.Visible   = true;
                    label5.Visible   = false;
                    textBox1.Visible = true;
                    textBox3.Visible = false;
                    label8.Visible   = false;
                    label9.Visible   = false;
                    label10.Visible  = false;
                    textBox4.Visible = false;
                    listBox4.Visible = false;
                }
                else if (listBox2.SelectedItem.ToString() == MySelectedItem.SelectHeadRightName ||
                         listBox2.SelectedItem.ToString() == MySelectedItem.SelectHeadLeftName)
                {
                    label3.Visible   = false;
                    label5.Visible   = false;
                    textBox1.Visible = false;
                    textBox3.Visible = false;
                    label8.Visible   = false;
                    label9.Visible   = false;
                    label10.Visible  = false;
                    textBox4.Visible = false;
                    listBox4.Visible = false;
                }
                else if (listBox2.SelectedItem.ToString() == MySelectedItem.TailIfCountFromRightName ||
                         listBox2.SelectedItem.ToString() == MySelectedItem.TailIfCountFromLeftName)
                {
                    label3.Visible   = false;
                    textBox1.Visible = false;
                    label5.Visible   = false;
                    textBox3.Visible = false;
                    label8.Visible   = false;
                    label9.Visible   = false;
                    label10.Visible  = false;
                    textBox4.Visible = false;
                    listBox4.Visible = false;
                }
                else if (listBox2.SelectedItem.ToString() == MySelectedItem.MergeListsName)
                {
                    label3.Visible   = false;
                    textBox1.Visible = false;
                    label5.Visible   = false;
                    textBox3.Visible = false;
                    label8.Visible   = true;
                    label9.Visible   = true;
                    label10.Visible  = true;
                    textBox4.Visible = true;
                    listBox4.Visible = true;
                }
            }
        }
Ejemplo n.º 2
0
 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;
     }
 }
 //Соединить два списка
 public void MergeLists(ListNodes MyList)
 {
     for (int i = 1; i <= MyList.Size; i++)
     {
         this.AddRight(MyList[i]);
     }
     MyList.CleanOutList();
 }
Ejemplo n.º 4
0
 //Вывод элементов справа налево
 private void PrintInBoxFromRight(ListBox listBox, ListNodes MyList)
 {
     if (MyList.Size == 0)
     {
         MessageBox.Show("Список пуст!");
     }
     else
     {
         for (int i = MyList.Size; i >= 1; i--)
         {
             listBox.Items.Add(MyList[i]);
         }
         textBox2.Text = MyList.Size.ToString();
     }
 }
Ejemplo n.º 5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            listBox2.BeginUpdate();
            //Отразим операции в listBox2
            ListNodes MyList = new ListNodes();

            listBox2.Items.Add(MyList.AddRightName);
            listBox2.Items.Add(MyList.AddLeftName);
            listBox2.Items.Add(MyList.SelectHeadRightName);
            listBox2.Items.Add(MyList.SelectHeadLeftName);
            listBox2.Items.Add(MyList.TailIfCountFromRightName);
            listBox2.Items.Add(MyList.TailIfCountFromLeftName);
            listBox2.Items.Add(MyList.MergeListsName);
            listBox2.EndUpdate();
        }
Ejemplo n.º 6
0
 //Вывод элементов слева направо
 private void PrintInBoxFromLeft(ListBox listBox, ListNodes MyList)
 {
     if (MyList.Size == 0)
     {
         textBox2.Text = MyList.Size.ToString();
         listBox.Items.Clear();
     }
     else
     {
         for (int i = 1; i <= MyList.Size; i++)
         {
             listBox.Items.Add(MyList[i]);
         }
         textBox2.Text = MyList.Size.ToString();
     }
 }
Ejemplo n.º 7
0
        //Клик по кнопке "Создать список". Создание пустых списков
        private void Button1_Click(object sender, EventArgs e)
        {
            ListNodes MyNewList = new ListNodes();

            listBox1.DisplayMember = "Name";
            listBox2.DisplayMember = "ActionName";
            int ListsInBox = listBox1.Items.Count;

            if (ListsInBox == 0)
            { //Если список пуст
                MyNewList.Name = "List0";
                listBox1.Items.Add(MyNewList);
            }
            else
            {
                MyNewList.Index = ListsInBox;
                MyNewList.Name  = "List" + MyNewList.Index.ToString();
                listBox1.Items.Add(MyNewList);
                MyNewList.Index += 1;
            }
        }
Ejemplo n.º 8
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("Неверное действие! Прочтите руководство по использованию, нажав на кнопку 'Помощь'");
     }
 }