GetFocusを使用せずにフォーカスの移動でBackColorを変えるには


UGM  2001-11-28 11:22:31  No: 75066  IP: [192.*.*.*]

初めてですが質問させて下さい。
フォームに貼ってあるコントロールにフォーカスが移動したら
そのコントロールのバックカラーを変えるというのは良く使いますよね?
大抵は各コントロールのGetFocusイベントで変えるはずですが、
それ以外の方法はあるのでしょうか?
使用目的は、
1.コントロールが多すぎてソースが見にくい(すっきりさせたい)
2.各フォームから同じ動作をする場合、共通関数として持っておきたい
以上なのですが、どなたか御教授下さい。

編集 削除
α  2001-11-30 13:06:03  No: 75067  IP: [192.*.*.*]

それ以外の方法ですが、
実際フォーカスを取得できる物がありますが、それは
ラベルかコマンドボタンかそうじゃないかぐらいしか取得できないので
パスしました。(オブジェクト名まで取得できるものはありますか?)

>1.コントロールが多すぎてソースが見にくい(すっきりさせたい)
>2.各フォームから同じ動作をする場合、共通関数として持っておきたい

これはSubやFunctionを使うことにより可能です。
SubやFunctionの用例はヘルプなどに書いてあります。

編集 削除
UGM  2001-12-04 20:05:09  No: 75068  IP: [192.*.*.*]

早速の御答えありがとうございます。
自分なりに色々考えたんですが、サブクラス化するしかないのでしょうか?
ActiveControlではタイミングを合わせるのが難しいような気がしました。

編集 削除
たかみちえ  2001-12-05 00:24:48  No: 75069  IP: [192.*.*.*]

そんなことにサブクラス化を使わなくても…いいと思いますけど…。
(サブクラスって、扱いが難しいし…)
αさんの言うとおり、色を変えたり戻したりを別関数にして、
それぞれのイベントで関数につなげる…とか。

  あ、そうそう、Layer-8(URLはここのリンク集から)に、
ActiveXなどを使わないコントロールの拡張方法…っていうのがあったようなきがします。
ご希望に合うものがあるかも。

編集 削除
たかみちえ  2001-12-05 00:25:19  No: 75070  IP: [192.*.*.*]

ActiveX…ではなく、OCXです^^;

編集 削除