投稿者 るきお  (社会人) 投稿日時 2020/10/29 08:27:58
使用されているのは Windowsフォームアプリケーションでしょうか?
アプリケーションの種類により実現方法は大きく変わります。

ひとまずWindowsフォームアプリケーションという前提で考えて見ます。

Windowsフォームアプリケーションで、かれんさんが考えられているような自由な描画を行うには、Paintイベントを使用します。
PictureBoxを1つ配置してそれのPaintイベントを使用すると良いでしょう。

おそらく現時点で画像(写真)を表示する部分はできているのではないかと思います。
単純に画像を表示するプログラムはPictureBoxのImageプロパティやBackgroundImageプロパティを使って実現することが多いですが、これだと今回かれんさんが考えられているような柔軟な描画はできないので、もし、この方法で画像を表示しているのならばPaintイベントを使って表示するように置き換えてください。

Paintイベント内で e.Graphics.DrawImage を使うと画像を描画できます。
Paintイベントないでは e.Graphics.DrawRectangleを使うと四角形を描画することもできるので、マウスが示す座標を指定するとマウスでなぞった位置に四角形を描画することも可能です。

マウスの座標は MouseMoveイベントや、Control.MousePositionプロパティで取得できます。

Paintイベントは描画が必要なタイミングで自動的に発生しますが、自分で呼び出したいときは PictureBox1.Invalidate を使います。

e.Graphicsにはこのほかにもいろいろな機能があり、単純な画像処理やちょっとしたゲームを作れるくらいのグラフィックスの制御が可能です。