Beispiel #1
0
        private void удалитьСлойToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult res = MessageBox.Show("Будет удален текущий активный слой, действительно продолжить?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);


            if (res == DialogResult.Yes)
            {
                if (ActiveLayer == 0)
                {
                    MessageBox.Show("Вы не можете удалить нулевой слой.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
                else
                {
                    LayersCount--;


                    int LayerNomForDel = Слои.SelectedIndex;


                    Слои.Items.RemoveAt(LayerNomForDel);


                    Слои.SelectedIndex = 0;

                    ActiveLayer = 0;

                    Слои.SetItemCheckState(0, CheckState.Checked);

                    ProgrammDrawingEngine.RemoveLayer(LayerNomForDel);
                }
            }
        }
Beispiel #2
0
        private void LayersControl_SelectedValueChanged(object sender, EventArgs e)
        {
            if (Слои.SelectedIndex != ActiveLayer)
            {
                if (Слои.SelectedIndex != -1 && ActiveLayer < Слои.Items.Count)
                {
                    Слои.SetItemCheckState(ActiveLayer, CheckState.Unchecked);

                    ActiveLayer = Слои.SelectedIndex;

                    Слои.SetItemCheckState(Слои.SelectedIndex, CheckState.Checked);

                    ProgrammDrawingEngine.SetActiveLayerNom(ActiveLayer);
                }
            }
        }
Beispiel #3
0
 // данная функция будет обрабатывать изменения значения элементов LayersControl
 private void LayersControl_SelectedValueChanged(object sender, EventArgs e)
 {
     // если отметили новый слой, необходимо снять галочку выделения со старого
     if (Слои.SelectedIndex != ActiveLayer)
     {
         // если выделенный индекс является корректным ( больше либо равен нулю и входит в диапазон элементов)
         if (Слои.SelectedIndex != -1 && ActiveLayer < Слои.Items.Count)
         {
             // снимаем галочку с предыдущего активного слоя
             Слои.SetItemCheckState(ActiveLayer, CheckState.Unchecked);
             // сохраняем новый индекс выделенного элемента
             ActiveLayer = Слои.SelectedIndex;
             // помечаем галочкой новый активный слой
             Слои.SetItemCheckState(Слои.SelectedIndex, CheckState.Checked);
             // посылаем сигнал движку программы, об изменении активного слоя
             ProgrammDrawingEngine.SetActiveLayerNom(ActiveLayer);
         }
     }
 }
Beispiel #4
0
        // функция удаления слоя
        private void удалитьСлойToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // запрашиваем подтверждение действия, с помощью MessageBox
            DialogResult res = MessageBox.Show("Будет удален текущий активный слой, действительно продолжить?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

            // если пользователь нажал кнопку "ДА" в окне подтверждения
            if (res == DialogResult.Yes)
            {
                // если удаляемый слой - начальный
                if (ActiveLayer == 0)
                {
                    // сообщаем о невозможности удаления
                    MessageBox.Show("Вы не можете удалить нулевой слой.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
                else // иначе
                {
                    // уменьшаем значение счетчика слоев
                    LayersCount--;

                    // сохраняем номер удаляемого слоя, т.к. SelectedIndex измениться полсе операций в LayersControl
                    int LayerNomForDel = Слои.SelectedIndex;

                    // удаляем запись в элементе LayerControl (с индексом LayersControl.SelectedIndex - текущим выделенным слоем)
                    Слои.Items.RemoveAt(LayerNomForDel);

                    // устанавливаем выделенный слоем - нулевой (главный слой)
                    Слои.SelectedIndex = 0;
                    // помечаем активный слой - нулевой
                    ActiveLayer = 0;
                    // помечаем галочкой нулевой слой
                    Слои.SetItemCheckState(0, CheckState.Checked);
                    // вызываем функцию удаления слоя в движке программы
                    ProgrammDrawingEngine.RemoveLayer(LayerNomForDel);
                }
            }
        }