Управление циклом спомощью кнопки

485
29 декабря 2016, 06:11

Есть у нас две кнопки в форме. На одной(нет,не пики точенные) привязано создание массивов, заполнение массива данными,копирование и цикл сортировки пузырьком. Как управлять циклом через другую кнопку?Пытался писать костыли и условия,но чувствую что за такой код,мне самому нужно выдать костыли.

private void StartSteps_Click(object sender, EventArgs e)
    {
        if (Form1.OpenFileName1 != null)
        {
            if (Form1.radioButton1.Checked == true)
            {
                Form1.Length1 = 10;
            }
            if (Form1.radioButton2.Checked == true)
            {
                Form1.Length1 = 10000;
            }
            int[] arrayOfnumbersAStep = new int[Form1.Length1];
            int[] arrayOfNumbersBStep = new int[Form1.Length1];
            int[] arrayOfNumbersCStep = new int[Form1.Length1];


            using (var stream = new FileStream(Form1.OpenFileName1, FileMode.Open))
            using (var reader = new BinaryReader(stream, Encoding.ASCII))
            {
                int i = 0;
                while (reader.PeekChar() != -1)
                {
                    if (i < arrayOfnumbersAStep.Length)
                    {
                        arrayOfnumbersAStep[i] = reader.ReadInt32();
                        i++;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            Array.Copy(arrayOfnumbersAStep, arrayOfNumbersBStep, Form1.Length1);

            for (int i = 0; i < arrayOfNumbersBStep.Length; i++)
            {
                while (Bubbleclick)
                {
                    if (BubbleNext.DialogResult == DialogResult.OK)
                    {
                        iteratorBubble++;
                        for (IteratorBubble = 0; IteratorBubble < arrayOfNumbersBStep.Length - i - 1;)
                        {
                            firstValue.Text = arrayOfNumbersBStep[iteratorBubble].ToString();
                            secondValue.Text = arrayOfNumbersBStep[iteratorBubble + 1].ToString();
                            if (arrayOfNumbersBStep[IteratorBubble] > arrayOfNumbersBStep[IteratorBubble + 1])
                            {
                                int temp = arrayOfNumbersBStep[IteratorBubble];
                                arrayOfNumbersBStep[IteratorBubble] = arrayOfNumbersBStep[IteratorBubble + 1];
                                arrayOfNumbersBStep[IteratorBubble + 1] = temp;
                            }
                        }
                    }
                }
            }
        }
    }
    static bool bubbleclick = true;
    private void BubbleNext_Click(object sender, EventArgs e)
    {

    }
Answer 1

В Вашем случае можно просто в обработчике нажатия на кнопку прописать

private void button1_Click(object sender, EventArgs e)
    {
        IteratorBubble++;
    }

а дальше осуществить метод, который вам необходим. Т. Е.

 private void button1_Click(object sender, EventArgs e)
        {
            IteratorBubble++;
            method();
        }

где method - это метод, работающий с новым значением IteratorBubble

READ ALSO
Почему не работает Contains в Linq

Почему не работает Contains в Linq

Сделал таблицу server side в DatatablesВсе работает замечательно

614
Как уменьшать высоту формы сверху вниз

Как уменьшать высоту формы сверху вниз

Хочу сделать всплывающие окна с эффектом плавного появления и исчезновенияЭффект хочу сделать такой:

535
Как скрыть пуск C#

Как скрыть пуск C#

В общем есть малоэкранное приложение на C#(написанное мною), которое накладывается поверх полноэкранного(чужое), при переходе на малоэкранное...

518
Чтение и запись массива в бинарный файл C#

Чтение и запись массива в бинарный файл C#

Всем доброго времени суток, есть бинарный файл, в который пишет программка написанная на С++ Builder, и которую мне нужно переписатьСтолкнулся...

769