編集に関する情報を表示させます。具体的にはUndoとRedoが可能な回数、ビットマップの表示倍率と実際のサイズ、マウスの座標の位置、その場所の色、範囲選択がされている場合、その左上の座標と幅、高さなどです。

まずデザイナでステータスバーを追加します。

UndoRedoの可能回数を表示させる

はじめにUndoとRedoが可能な回数ですが、これはBitmapプロパティが変更されるときです。そこで以下のようにします。

それからUndoとRedoの処理はBitmapプロパティをつかわず別の方法でおこなっています。そこでUndo()とRedo()のなかでもイベントを発生させる必要があります。またUndoバッファがクリアされるときもイベントを発生させています。

そしてイベントが発生したらUndoバッファを表示させます。イベントハンドラはUserControlImage1_BitmapChangedとします。これでUndoバッファに関する情報と編集中のビットマップに関する情報がステータスバーに表示されます。

それから表示倍率もいっしょに表示させていますが、これがかわるのはメニューを選択したときです。そこでそのときもShowBitmapInfo()メソッドを呼び出します。

マウスポインタの座標と対応する色を表示させる

つぎにマウスポインタがある位置の座標と色を表示する方法ですが、まずピクチャーボックスの上でマウスが移動したときのイベントを作成します。イベントハンドラの引数はマウスの位置に相当する点の座標です。PictureBox1_MouseMoveメソッド内でイベントハンドラの引数は取得できます。

点の座標からその場所の色を求めるメソッドも作成します。ビットマップ内であれば色を調べてそれを返します。ビットマップの外であればColor.Emptyを返します。また範囲選択されているときは白または透明を返します。

自作したイベントPictureBoxMouseMoveを捕捉して処理をおこないます。座標と色を調べてこれをMousePositionStatusLabelとMousePositionColorStatusLabelに表示させます。

それから方向キーがおされたときも選択されている部分が移動するので、このときも選択部分の座標を表示させます。