初めてですが質問させて下さい。
フォームに貼ってあるコントロールにフォーカスが移動したら
そのコントロールのバックカラーを変えるというのは良く使いますよね?
大抵は各コントロールのGetFocusイベントで変えるはずですが、
それ以外の方法はあるのでしょうか?
使用目的は、
1.コントロールが多すぎてソースが見にくい(すっきりさせたい)
2.各フォームから同じ動作をする場合、共通関数として持っておきたい
以上なのですが、どなたか御教授下さい。
それ以外の方法ですが、
実際フォーカスを取得できる物がありますが、それは
ラベルかコマンドボタンかそうじゃないかぐらいしか取得できないので
パスしました。(オブジェクト名まで取得できるものはありますか?)
>1.コントロールが多すぎてソースが見にくい(すっきりさせたい)
>2.各フォームから同じ動作をする場合、共通関数として持っておきたい
これはSubやFunctionを使うことにより可能です。
SubやFunctionの用例はヘルプなどに書いてあります。
早速の御答えありがとうございます。
自分なりに色々考えたんですが、サブクラス化するしかないのでしょうか?
ActiveControlではタイミングを合わせるのが難しいような気がしました。
そんなことにサブクラス化を使わなくても…いいと思いますけど…。
(サブクラスって、扱いが難しいし…)
αさんの言うとおり、色を変えたり戻したりを別関数にして、
それぞれのイベントで関数につなげる…とか。
あ、そうそう、Layer-8(URLはここのリンク集から)に、
ActiveXなどを使わないコントロールの拡張方法…っていうのがあったようなきがします。
ご希望に合うものがあるかも。
ActiveX…ではなく、OCXです^^;
編集 削除