событие рисования в c#.Net

#c# #graphics #paint

#c# #графика #Краски

Вопрос:

В моем приложении есть следующие элементы управления,

  • Пользовательский элемент управления состоит из панели
  • Кнопка «Открыть» Я использую событие рисования, чтобы нарисовать изображение (просмотренное и выбранное с помощью OpenFileDialog) на пользовательском элементе управления. Это отлично работает для первого изображения. Если я использую OpenFileDialog для открытия второго изображения, часть с размером OpenFileDialog не отображается в элементе управления. Это проблема с использованием с событием рисования?

Комментарии:

1. Рассматривали ли вы возможность использования PictureBox для рисования вашего изображения вместо этого?

Ответ №1:

используйте это для управления, которым вы обрабатываете его событие рисования. если это ваш пользовательский элемент управления, просто сделайте это после диалога:

 myUserControl.Invalidate()
  

Метод Invalidate снова автоматически вызывает событие paint для указанного элемента управления.

Ответ №2:

Я думаю, вам нужно вручную вызвать метод обновления вашей панели после закрытия OpenFileDialog.

Ответ №3:

Я думаю, что это лучше:

 //you have a picturebox in the form pictureBox1
// openFileDialog ofd

if (ofd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
    this.pictureBox1.Image = new BitMap(ofd.FileName);
}