Как удалить растровое изображение из пользовательского элемента управления в WinForms? - PullRequest
0 голосов
/ 12 января 2011

У меня есть форма, которая загружена сгенерированным растровым изображением.Я хочу, чтобы пользователь мог нажать кнопку и изменить отображаемую графику.У меня вопрос, как я могу удалить растровое изображение, которое отображается в данный момент?

Редактировать: Растровое изображение загружается в ImageBox (не непосредственно в форму), что любезно предложено Хансом Пассантом c # панель для рисования графики и прокрутки

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 января 2011

Тот же принцип, что и в ответе Леппи. За исключением того, что вам нужно установить свойство ImageBox.Image вместо:

myImageBox.Image = null;


Это работает из-за следующего кода (взято из ответа Ганса на ваш предыдущий вопрос ):

protected override void OnPaint(PaintEventArgs e) {
    e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
    if (mImage != null) e.Graphics.DrawImage(mImage, 0, 0);
    base.OnPaint(e);
}

Когда вы устанавливаете свойство Image элемента управления на null, установщик свойства заставляет элемент управления перерисовывать себя (this.Invalidate();). Когда он перерисовывается, изображение не рисуется, потому что метод OnPaint, отвечающий за рисование элемента управления, проверяет, что mImage != null перед его рисованием.

1 голос
/ 12 января 2011

Должно работать следующее:

Form.BackgroundImage = null;
...