Панели WinForms не отображаются в стеке - PullRequest
1 голос
/ 01 мая 2011

У меня есть панель с изображением в качестве фона.Я добавил две панели (с прозрачным фоном) к этой панели.Я отвечаю на событие 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);
        }             
    }      
...