現在、pictureBox に表示されている画像に何かを描画しようとしています。マウス アクティビティのイベント ハンドラーを使用しています: onMouseUp、onMouseMove、および onMouseDown。
private void onMouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void onMouseMove(object sender, MouseEventArgs e)
{
if (mouseDown)
{
using (Graphics g = pictureBox.CreateGraphics())
{
g.FillEllipse(Brushes.Black, e.X - size, e.Y - size, size * 2, size * 2);
}
}
}
private void onMouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
using (Graphics g = pictureBox.CreateGraphics())
{
g.FillEllipse(Brushes.Black, e.X - size, e.Y - size, size * 2, size * 2); //just in case user just clicks instead of move the mouse
}
}
マウスが pictureBox の上を移動しているときに、指定されたサイズ (半径) の円を描くブラシ ツールをシミュレートしようとしています。動きが遅い場合はうまく機能しますが、動きが速い場合、pictureBox は一部のイベントのみをキャッチするように見え、多くの円がスキップされて描画されません。特に半径が小さい場合。
より速くスムーズにするにはどうすればよいですか?