1

100 ミリ秒ごとに 600 ポイントのパネルにプロット ダイアグラムを描画したいと考えています。Graphics オブジェクトを使用して単純に楕円を描画すると、画面が点滅します。どうすればこのような図をフラッシュせずに効率的に描くことができますか?!

4

2 に答える 2

0

パネルのダブル バッファリングは、継承を介してオンにする必要があります。

public class BufferedPanel : Panel {
  public BufferedPanel() {
    this.DoubleBuffered = true;
    this.ResizeRedraw = true;
  }
}

次に、コントロールの実際のペイント イベントを使用していることを確認します。

public Form1() {
  InitializeComponent();
  bufferedPanel1.Paint += bufferedPanel1_Paint;
}

private void bufferedPanel1_Paint(object sender, PaintEventArgs e) {
  e.Graphics.DrawSomething(...);
}

CreateGraphics()あくまでも仮の絵なので使用は避けてください。

于 2012-07-21T12:31:31.933 に答える
0

これを停止する簡単な方法は、ダブル バッファリングをオンにすることです。フォームには、true に設定できるダブル バッファ プロパティがあります。

または、サポートされている場合は、コントロールで実行できる場合もあります。

例えば

class MyForm : Form
{
    public MyForm()
    {
        InitializeComponent();
        this.DoubleBuffered = true;
    }
}
于 2012-07-21T12:27:36.207 に答える