Claw2 Ответов: 3

Как установить backcolor по умолчанию?


у меня есть код, который создает массив кнопок, а затем сортирует их с помощью алгоритма сортировки вставки и окрашивает кнопки в зеленый цвет для сравнения и красный для замены.
теперь...почему кнопки остаются цветными и как я могу установить их по умолчанию backcolur


это и есть обмен
public  void exchange(int[] A, int m, int n)
       {
           string s;
           int temp;
           but[m].BackColor = Color.Red;
           System.Threading.Thread.Sleep(100);
           but[n].BackColor = Color.Pink;
           System.Threading.Thread.Sleep(100);

           temp = A[m];
           s = but[m].Text;
           A[m] = A[n];
           but[m].Text = but[n].Text;
           A[n] = temp;
           but[n].Text = s;

           but[m].Refresh();

           but[n].Refresh();


       }



и это сортировка
<pre>public  void sort(int[] A)
        {
            int i, j;
            int N = A.Length;

            for (j = 1; j < N; j++)
            {
                for (i = j; i > 0 && A[i] < A[i - 1]; i--)
                {
                    but[i-1].BackColor = Color.Green;
                    System.Threading.Thread.Sleep(100);
                    but[i].BackColor = Color.GreenYellow;
                    System.Threading.Thread.Sleep(100);
                    but[i].Refresh();
                    but[i - 1].Refresh();
                    exchange(A, i, i - 1);
                }
            }
        }

картинка с формой[^]

Что я уже пробовал:

я попробовал метод обновления, но он не работает.

3 Ответов

Рейтинг:
25

Dave Kreskowiak

Решение довольно простое. Сохраните значение BackColor в переменной перед изменением ее цвета. Вы даже можете изучить содержимое BackColor в отладчике.


Рейтинг:
0

Mahesh Pratap Singh

Я думаю, что вместо обновления это то, что вам нужно:

but[i].BackColor = Color.FromName("Control");


Дайте мне знать, если это решит вашу проблему.


Рейтинг:
0

JayantaChatterjee

Привет,
Вы можете попробовать решение @Dave, которое хранит предыдущий задний цвет кнопки.
Если вы хотите установить цвет по умолчанию(который является цветом кнопки управления назад), то вы можете попробовать это:-

but[i].BackColor = default(Color);

это позволит установить задний цвет кнопки по умолчанию.

Надеюсь, это сработает.