参照フォームのキーイベントを禁止するには

解決


ペコ  2003-06-23 20:10:54  No: 78399

初めまして、ペコです。
form型で参照したフォームの、動作を禁止する方法を教えてください。
フォームのEnabledプロパティをFalseにしたのですが、なぜかキーイベントが有効になっているようです。

よろしくお願いします。


oku  URL  2003-06-23 20:53:16  No: 78400

キーイベントのヘルプを見たら
フォーカスが設定されているオブジェクトに対して発生します。
って書いてあるんで、そのとおりだと思います。
しょうがないので、キーイベントのプロシージャに
フォームがEnabled=Falseだったら抜けるロジックを書いたら駄目ですか?


ペコ  2003-06-23 22:07:44  No: 78401

早速の返答、ありがとうございます。

キーイベントのプロシジャに、排他処理を用意する方法ですが、
キーイベントのプロシジャは僕の担当から外れている為、
出来れば修正したくないのです。

説明が足りませんでした。申し訳有りません。

okuさんの方法は最終手段としてとっておくことにします。

自分が取得しているのはForm型の参照のみです。
よろしくおねがいします。


oku  URL  2003-06-24 07:22:41  No: 78402

うーーん他にないような気が…
ちなみにForm型の参照ってどうやってるんですか?
コードを書いてくれると参考になるかも?
VB独学なので、知ってる範囲が狭すぎです。
もっと勉強しよっと!


natumegu  2003-06-24 18:47:05  No: 78403

FormそのものをEnabled = Falseにするのではなく
Form内の各コントロールをEnabled = Falseにする
というのでは駄目でしょうか?


ペコ  2003-06-24 19:19:13  No: 78404

返答、ありがとうございます!

>okuさん
クラスなんかのメソッドで、

Public Sub SetMousePointer(ByRef frmSetForm As Form, ByVal cntValue As MousePointerConstants)

こんな感じで取得しています。このfrmSetFormに対してEnabled = Falseをかけているんです。。。(;_;

>natumeguさん
あ!なるほど!。controlsコレクションを見る方法ですね。一度Enableに
した後、元に戻すのが大変そうですが(以前の状態を記憶しなくてはいけないかも)。

今、ちょっと別件で詰まっているので、終わり次第やってみます。
ありがとうございます。


ペコ  2003-07-01 02:16:06  No: 78405

すいません。実装が遅れました。
結局、フォーム上に乗ってるコントロールのいくつかについて、
Enable=falseにしてもキーがきいてしまう事がわかりました。

こうなってしまうと、完全にお手上げです。
各イベント毎にFormのEnabledを見て貰う事にしようと思います。
ありがとうございました。


nanashi  2003-07-01 19:08:03  No: 78406

ダミーコントロールをフォームの表示領域の外に用意しておいて、
フォームのEnabledをFalseにするタイミングでそっちにSetFocusしてみては?
キーイベントは効いてしまうけどTABで他のコントロールにフォーカスが移ることも無いし。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加