我有一个以图像为背景的面板。我在这个面板上添加了两个面板(透明背景)。我正在响应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);
}
}