Практика рисования событий | createGraphics не работаетC#

Место общения программистов C#
Ответить
Anonymous
 Практика рисования событий | createGraphics не работает

Сообщение Anonymous »

Я относительно новичок в C# и Winform, особенно в графическом классе и передовых методах рисования на панели. После некоторых исследований я обнаружил, что если у меня есть событие рисования, мне следует рисовать только в рамках этого события.
Префикс: у меня уже есть событие рисования, которое будет нарисуйте случайные прямоугольники на панели.

Мой проект: Я хочу создать визуализатор сортировки, выделяющий текущий прямоугольник, к которому осуществляется доступ, чтобы указать, на каком этапе процесса сортировки мы находимся.< /p>

Код: Выделить всё

private void sortBtn_click(...){
int numRectangles;
int[] heights = new int[numRectangles]; // Array to store randomized heights of rectangles

// This loop would be the sorting algorithm I would use however a
// basic loop is used to test the highlighting of rectangles

// I want to draw over the current rectangle that already drawn on the panel
for(int i = 0; i < numRectangles; i++) {

}
}
Проблема: Мне было проще, если бы я мог нарисовать новый прямоугольник без необходимости проходить через событие рисования (вызов инвалидации). Я попробовал следующий метод:

Код: Выделить всё

private void sortBtn_Click(...){
int numRectangles
int[] heights = new int[numRectangles]; // Array to store randomized heights of rectangles
Graphics g = panel.createGraphics();
// Basic loop to test the highlight of rectangles
// Want to draw over the current rectangle that already drawn on the panel
for(int i = 0; i < numRectangles; i++) {
Brush myBrush = Brushes.Red;
g.fillRectangle(...);
}
}
Однако является ли это плохой практикой, поскольку у меня уже есть событие рисования? Более того, похоже, что это ничего не рисует на панели, поэтому в любом случае этот метод кажется недействительным.
Два основных вопроса:
  • Была ли это плохой практикой? Если да, то как я могу эффективно реализовать функцию выделения с помощью событий рисования?
  • Правильно ли я реализовал метод createGraphics? Если да, то почему это ничего не вынесет на панель
Любые другие конструктивные замечания, помимо моих двух основных вопросов, приветствуются. Я новичок в C# и WInform, поэтому открыт для любых советов.
Я пробовал использовать createGarphics(), но, похоже, на моей панели ничего не работало и не рисовалось.< /п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»