パネルの Paint イベント内に、2 つの点の間に青い線を描画するコードがあります。
private void panel1_Paint(object sender, PaintEventArgs e)
{
panel1.AllowDrop = true;
listBox1.AllowDrop = true;
if (!s.IsEmpty && !f.IsEmpty)
{
e.Graphics.DrawLine(new Pen(Color.Blue, 5f), f, s);
s = Point.Empty;
f = Point.Empty;
}
}
Im SetPoint メソッドでパネルを無効にします。
void setPoint(Point p)
{
if (f.IsEmpty)
f = p;
else
{
s = p;
panel1.Invalidate();
}
}
これは、ボタンをクリックすることによってトリガーされます。線を引きますが、問題は、1 つの線が既に存在する場合です。上書きします。問題はにあると思いましたInvalidate
。Refresh()
しかし、または機能しないため、修正方法がわかりUpdate()
ません。
私が間違っていることは何ですか?