一つ前のフォーカスがあったコントロールの取得をするには?


赤ペン  2002-06-18 14:01:05  No: 75755  IP: [192.*.*.*]

現在の一つ前にフォーカスがあったコントロール(AccessでいうとPreviousControlプロパティ)
を取得するにはどうしたらよいでしょうか?

編集 削除
蜻蛉  2002-06-18 17:15:20  No: 75756  IP: [192.*.*.*]

>フォーカスがあったコントロール
とは、ボタンなどの通常のWindowsフォームコントロールを
表しているのでしょうか?
それともまた違ったものなのですか?

編集 削除
Say  2002-06-18 18:45:35  No: 75757  IP: [192.*.*.*]

LostFocusのときに、保持しておくとか・・・。

編集 削除
蜻蛉  URL  2002-06-18 22:00:20  No: 75758  IP: [192.*.*.*]

普通のWindowsフォームコントロールならSayさんの言うとおり
LostFocusのときにコントロールのTagプロパティに設定しておけばいいでしょう。

編集 削除
赤ペン  2002-06-19 14:37:30  No: 75759  IP: [192.*.*.*]

Sayさん、蜻蛉さん、どうもご回答ありがとうございます。

通常のWindowsフォームコントロールだと思います。
テキストボックスやコンボボックス等のコントロールを対象にしています。

LostFocusの時に書くとしたら、全ての入力可能なコントロールのイベントに書くことになりますよね。
#結構入力コントロールが多かったりします
やはりそれしかないでしょうか?

そのやり方を取り入れるとすれば、
モジュール変数等を使うより、特定コントロールのTagプロパティを使用した方がよいものでしょうか?

編集 削除
うち  2002-06-19 14:50:50  No: 75760  IP: [192.*.*.*]

コントロール配列に変更できるのであれば、それが一番です。
この場合なら、Tagプロパティを使用するのもいいでしょうが、
自分がやるのであればモジュールの変数に記録します。

Tagプロパティを使うと、全部のコントロールのTagプロパティ
を検索する羽目になるのでコントロール数によっては手間だし、
遅くなります。
それより、各コントロールに番号(文字でも可)を設定して、
その番号をLostForcus時に変数に記憶させたほうが良いかと
おもいます。
その番号(名前)のつけ方でどのフォームのどんなコントロール
からとかと発展させることも可能です。

編集 削除
赤ペン  2002-06-20 16:25:55  No: 75761  IP: [192.*.*.*]

うちさん、ご回答ありがとうございます。

事情があって、コントロール配列にはできないんです。
やはりLostFocusを使う方法しか無さそうですね。
使用可能なコントロールの数が多いので、
なるべくならば避けたい方法でしたが、しょうがないようですね。

Tagではなく、変数を使用した方が良さそうですね。

編集 削除