編集モードとアイドルモード

David Sceppa[プログラミング ADO.NET]の13章の例に倣って(Sceppaでなくてもよくあることですが)、現在私はデータ入力画面では[編集モード]と[アイドルモード]の区別を徹底しています。そうしないと、メモリ上のデータの管理が難しくなるからです。

画面で何か編集すると編集モードに移行し、必ずそのデータを保存するか作業をキャンセルするか(すなわちアイドルモードに移行)しないと、他の画面への遷移ができないようにしています。

もっと正しくいうと、画面上で[新規]、[修正]、[削除]の何れかのボタンを押すと編集モードに移行します。編集モードでは[登録]あるいは[キャンセル]ボタンを押さない限り、[その]操作すなわち[新規]作業、[修正]作業あるいは[削除]作業から抜け出すことはできません。

[新規]作業中は新規データを作成する以外の作業は許されません。[修正]作業でも修正作業以外の作業はできませんし、[削除]でも同様です。

ただし[削除]はワンクリックの操作しかなく、あとは[登録]するか[キャンセル]するかです。

また、画面であるデータを読み出して修正しようとするとき、その都度[修正]ボタンを押すのは「カッタルイ」ので、画面を修正した途端に自動的に[修正]作業に移行するようにしています。

同じ編集モードでも[新規]、[修正]あるいは[削除]作業から最終的にデータベースにデータを保存するとき、処理が異なってきますので、Form変数でその時の作業状態を保存しています。

編集の途中で他の画面に移行したり、[削除]に続いて[新規]作業しデータベースへの保存を試みると[同時実行違反]の原因になります。
ですからプログラムでそれらの操作をさせないようにする必要があります。
[編集モード]になったら、まず[編集]用ボタン[新規]、[修正]および[削除]ボタンはEnabel = Flaseにしなければいけませんし、これだけでなく触らせたくない画面上のコントロールはすべてEnable = Falseにしなければいけません。

そして、[アイドルモード]に移るとこれらのコントロールを開放してやらなければなりません。

たくさんのコントロールの状態制御に以前(昨2009年9月)ご紹介しましたCollectionを使っています。

error: コピーできません !!