連続質問ですみません。
反転表示はうまく行きましたが
Tabキーや方向キー(→とか)で反転表示を取り消すことはできますか?
他の言語では自動的に取り消してくれた気がしますが
文字列を一回削除し,もう一回セットっていう方法でもできるとは思いますが
もっといい方法ありませんか?
よろしくお願いします。
方向キーで反転表示消えませんか?
TABはコントロールが一つだとフォーカスが移動しないので消えないと思いますが。。。
VBのバージョンによってちがうのかな?
TABはKeyPressでKeyAscii = 9のときに
SelLengthを0で消えると思います。
かげうらさん:こんばんは!
>TABはKeyPressでKeyAscii = 9のときに
>SelLengthを0で消えると思います。
テキストボックスのKeyPressイベントでKeyAscii = 9って
記述するんですか?
やってみましたができませんでした。
方向キーは反転表示は取り消してくれますがフォーカスを次のオブジェクトに
移りません。
ちなみにバージョンは VB 6.0です。
OSはWin98です。
かげうらさん:こんにちは!
Tabキーは認識できないようです。
デバックでやってみましたがぜんぜん反応無でした。
配置してあるコントロールは一つだけではなく、反転表示されたテキストボックス
上でTabキーもしくは方向キーが押された場合に他のコントロールにフォーカスを
移したいと言うことですか?
それとも単に反転表示を取り消すだけでフォーカスはそのままにしたいのですか?
KeyPressイベントとKeyDownイベントのどちらでもTabキーはきちんと認識してくれます。
ただ方向キーでフォーカス移動をしたい場合はフォーカスを移動する処理を書き込む必要がありますよ。
t@Kiさん:こんにちは!
Tabキーが押された場合に反転表示が取り消されると同時に他のコントロールに
フォーカスを移す処理がしたいです。
KeyDownイベントは確認してませんがKeyPressイベントでは認識されませんでした。(デバッグで)
すみません訂正です。KeyDown および KeyUpイベントではTabキー押下は認識しません。ヘルプに書いてありました。
>Tabキーが押された場合に反転表示が取り消されると同時に他のコントロールに
>フォーカスを移す処理がしたいです。
とありますが、そういうことならばただ単にTabキーを押下すればデフォルトでそのような処理がされます。
ただ特定のコントロールにフォーカスを移したいのであれば、APIを使ってTabキー押下のメッセージをフックするか、単純にTabIndexを実行中に操作するという
2通りのやり方があります。
わざわざAPIを使う必要もないと思いますので、後者の方法をおすすめします。
Tabキーは移動出来るコントロールがない場合、
又は全てのコントロールのTabStop プロパティがFalseになっている場合のみ
KeyPress、KeyDownのイベントが発生します。
・方向キーはコーディングしなくても選択を解除出来ますね。
・Tabキーでは、、、
下の”文字列の反転表示”の投稿を見ると
HideSelection プロパティをFalseに・・・
と書かれてありますが、HideSelectionをTrueにしておけば、
フォーカスが失った時に選択は解除されます。
(Tabでのフォーカス移動では解除したいけど、
マウス操作でのフォーカス移動では解除しないというのであればダメですが)
・方向キーでもフォーカスを移動したいのであれば、コーディングが必要です。
t@Ki さん、あき☆彡 さん:
こんにちは!
返答ありがとうございました。
HideSelection プロパティをTrueにしたら
反転表示も取り消され,フォーカスも他のコントロールに移りました。
本当にありがとうございました。
ツイート | ![]() |