#c# #panel #paint
#c# #панель #Краски
Вопрос:
У меня есть панель, на фоне которой есть изображение. Я добавил к этой панели две панели (с прозрачным фоном). Я отвечаю на событие OnPaint, чтобы нарисовать на них объекты.
рисуется только панель в позиции 0 элементов управления.
есть идеи, почему?
РЕДАКТИРОВАТЬ: я могу отобразить вторую дочернюю панель, переопределив событие OnPaint содержащей панели, но первая дочерняя панель отображается дважды. Есть ли способ избежать этого?
с панели, содержащей другие
private void InitializeComponent()
{
this.SuspendLayout();
//
// VisualizationContainer
//
this.AutoSize = true;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.Dock = System.Windows.Forms.DockStyle.Fill;
this.Paint = new System.Windows.Forms.PaintEventHandler(this.onPaint);
this.MouseClick = new System.Windows.Forms.MouseEventHandler(this.onMouseClick);
this.Resize = new System.EventHandler(this.onResize);
this.ResumeLayout(false);
}
и код из OnPaint содержащей панели
private void onPaint(object sender, PaintEventArgs e)
{
InvokePaintBackground(this, e);
foreach (SubPanel sub in subPanels)
{
sub.onPaint(this, e);
}
}
Комментарии:
1. Пожалуйста, разместите некоторый код из файла конструктора.
2. @akram-shahda Чего ты хочешь?