C#におけるrubberband(ラバーバンド)ですが、ControlPaintを使用したり、他の方法を試したりと色々とサンプルを作成しては作り直しをしましたが、解決策が見つかりました。
方法は、以下のコードになります。
private Graphics Layer;
private void DrawRubberBand(Point sp, Point ep)
{
Layer = pictureBox1.CreateGraphics();
Pen p = new Pen(Color.Blue);
pictureBox1.Refresh();
Layer.DrawLine(p, sp.X, sp.Y, ep.X, ep.Y);
Layer.Dispose();
p.Dispose();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//背景に描いているものを描画する処理
}
こうすると、線を描いたり消したりすることができるので、Excelの線やボックスを描画するようなものを作成することができます。
方法は、以下のコードになります。
private Graphics Layer;
private void DrawRubberBand(Point sp, Point ep)
{
Layer = pictureBox1.CreateGraphics();
Pen p = new Pen(Color.Blue);
pictureBox1.Refresh();
Layer.DrawLine(p, sp.X, sp.Y, ep.X, ep.Y);
Layer.Dispose();
p.Dispose();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//背景に描いているものを描画する処理
}
こうすると、線を描いたり消したりすることができるので、Excelの線やボックスを描画するようなものを作成することができます。