内部に複数のパネルがあるパネルがあります。マスターパネルのOnPaintを次のようにオーバーライドしました。
protected override void OnPaint(PaintEventArgs e)
{
Graphics graph = e.Graphics;
graph.Clear(Color.Black);
InvokePaintBackground(this, e);
graph.ScaleTransform(scale, scale);
foreach (childPanel child in childPanels)
{
child.onPaint(this, e);
}
graph.ResetTransform();
}
私が抱えている問題は、最初のコントロール(スポット0のコントロール)のonPaint関数が2回呼び出されているため、子パネルの2つのバージョンを取得していることです。1つはスケーリングあり、もう1つはスケーリングなしです。2番目のonPaintは、子コントロール自体によって呼び出されているようです。
どうすればこれを防ぐことができますか?