私は C# を学び始めたばかりで、ちらつきを避けるためにペイントする際の適切な方法についてアドバイスを求めたいと思います。
ダブルバッファリングやオンにするなど、ここで説明した方法を使用しましたWS_EX_COMPOSITED
が、私にとってうまくいく方法は次のとおりです。
の呼び出しPaintEventHandler
:
this.dgData.Paint += new System.Windows.Forms.PaintEventHandler(this.myPaint);
を使用しPaintEventArgs
て描画します。
private void myPaint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics myGraphics = e.Graphics;
// Use myGraphics to draw
}
そして、PaintEventHandler
は の を介してトリガーRefresh()
されTimer
ます。
private void TimerElapsed(object sender, System.EventArgs eventArgs)
{
Refresh();
}
ただし、私の懸念は、この描画方法ではPaintEventHandler
、フォームにある for every コントロールが必要になることです。
そのため、これを達成するためのよりエレガントな方法があるかどうかを尋ねたいと思います。
ありがとう!