2013-03-11 4 views
0

Я создал себе прозрачную панель.Управление больше не прозрачно после обновления

public TransPanel() 
{ 
} 

protected override CreateParams CreateParams 
{ 
    get 
    { 

     CreateParams cp = base.CreateParams; 

     cp.ExStyle |= 0x00000020; 

     return cp; 

    } 

} 

protected override void OnPaint(PaintEventArgs e) 
{ 
    if (ImageForBackGround != null) 
    { 
     e.Graphics.DrawImage(ImageForBackGround, new Point(0, 0)); 
    } 
} 

Он отлично работает, но я не имею проблему, что управление больше не прозрачным, если я делаю .refresh(); или .Invalidate() ;. Затем элемент управления имеет тот же цвет, что и его родитель. Я уже пытался переопределить BackgroundOnPaint-Event, но он не работает.

protected override void OnPaintBackground(PaintEventArgs pevent) 
{ 

    Application.DoEvents(); 

} 

Может кто-нибудь мне помочь? Заранее спасибо.

+0

Забудьте сказать: Я использую Windows Forms – BudBrot

ответ

0

Я нашел решение сейчас. Просто установите Opaque в true.

protected override void OnPaint(PaintEventArgs e) 
    { 
     if (ImageForBackGround != null) 
     { 
      e.Graphics.DrawImage(ImageForBackGround, new Point(0, 0)); 
      this.SetStyle(ControlStyles.Opaque, true); 

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