Панели WinForms не отображаются при нахождении в стеке

#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 Чего ты хочешь?