VB2005のMouseHover, VB6.0では?(イベント・コンボボックスにて)

解決


大木  2008-03-11 05:18:03  No: 139235

コンボボックス内のテキストがブランクの場合に、プルダウンへDBより取得した全てを表示。
コンボボックス内へテキストが存在する場合は、テキストの内容でDBより取得した内容を前方一致検索を行った後にプルダウンへ表示。
という処理を行おうとしています。(テキストは漢字含みます)

VB2005ではMouseHoverにて、
コンボボックス内のテキストへ複数文字を入力してから、
プルダウンへカーソルをあわせることにより、
プルダウンが開く前に前方一致検索を行い、プルダウン内へ対象のみ表示ができたのですが、
vb6.0では、複数文字を入力後、かつ、プルダウン展開前にイベントを起動するには、
どのように行えばよいでしょうか?

Change   では、複数文字を入力しても、1文字しか認識してもらえない
Click    では、プルダウンより選択後にイベントが発生するので手遅れ
GotFocus では、テキスト入力前にイベント発生すしてしまう
Keydown  では、1文字目を入力し、ENTERを押す前に起動してしまう

よろしくお願いします。


通ってみた  2008-03-11 05:46:02  No: 139236

>Keydown  では、1文字目を入力し、ENTERを押す前に起動してしまう

Enter以外の場合には処理せず抜けたら望んだ結果になりませんか?


大木  2008-03-11 18:02:45  No: 139237

通ってみたさん  ありがとうございます。
確かにそのやり方で実現できますね。

ありがとうございました。


大木  2008-03-11 19:35:07  No: 139238

解決済みにした上で、更に質問失礼します。
PG内へEnter以外のキーをスルーする条件を付加しました。

presskey    ai     変換      Enter   Enter
テキスト内  「あい」「愛」    「愛」   「愛」
イベント     スルー  スルー   未発生    処理

2度目のEnterでイベントが起動するのですが、
1度目の変換の確定のEnterは拾う方法はないでしょうか?


大木@次問題  2008-03-11 20:01:33  No: 139239

すみません。間違えていました。
修正と加筆です。

vbKeyReturn=13にて判定を行う

presskey    ai     変換      Enter   Enter
テキスト内  「あい」「愛」    「愛」   「愛」
key値        ?     ?        -30556  13
イベント     未発生  未発生   スルー    処理

すみません。


大木  2008-03-11 23:32:59  No: 139240

すみません。
解決致しました。

最初から、DropDownを選んでおけばよかったんですねorz


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




  


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