WinForms面板在堆栈时不绘制

时间:2011-05-01 05:50:21

标签: c# panel paint

我有一个以图像为背景的面板。我在这个面板上添加了两个面板(透明背景)。我正在响应onPaint事件来绘制它们。

仅绘制控件位置0的面板。

任何想法为什么?

编辑:我可以通过覆盖包含Panel的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);
        }             
    }      

0 个答案:

没有答案