2011-01-12 4 views
0

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

Edit: Растровое изображение загружается на в Imagebox (не непосредственно на форму), который любезно предложил Ханс Passant c# panel for drawing graphics and scrolling

Благодаря

ответ

2

Same как ответ leppie. Кроме того, что вам нужно установить ImageBox.Image свойства вместо:

myImageBox.Image = null; 


Это работает из-за следующий код (Выдержки из Hans's answer to your previous question):

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 перед его рисованием.

+0

Отлично. Спасибо. –

1

должно работать:

Form.BackgroundImage = null; 
+0

Привет, к сожалению, это не работает, так как битмап не загружается непосредственно в форму. См. Мое редактирование выше. Благодарю. –

Смежные вопросы