pictureBox.Paint イベントに、pictureBox.Refresh(); を書いたら
常に Paint が呼ばれるようになった。何故。
Paint イベントは、コントロールが再描画されると発生。
Refresh メソッドは再描画なのでループしていることになる。と思う。
Memo
マウスドラッグで図形を描く時、
Refresh しないとマウス動かした分の図形が描写される。よって再描画が必要。
ex ) 色々省略ソース
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
//e.Location; で始点保持
}
// 左ボタン押しながらドラッグすると図形が描かれる
private void pictureBox_MouseMove(object sender, MouseEventArgs e)
{
using (Graphics g = pictureBox.CreateGraphics())
{
g.DrawEllipse(Pens. ~
}
pictureBox.Refresh();
}
// これも必要。ないと左ボタン離したら描いた図形が消えてしまう
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawEllipse(Pens. ~
}
こちらから。
https://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.paint
以上。