VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/08/03(Tue) 23:41
投稿者Numawo
Eメールredwolf_Numao@hotmail.com
URL
タイトルコンボボックスでの↑↓キー

初めての投稿ですので、不備がありましたらご指摘お願いします。

今回質問させていただく事柄は、以下のことです。

まず環境はVB6(SP5)です。(Win2k)
VB6は専門学校で1ヶ月程度になります(コンボボックス未学習)

コンボボックスが2個あるとします(それぞれCbo1、Cbo2と仮定)
Styleプロパティで2-ドロップダウンリストをそれぞれ選択しています。
フォームロードで適当な項目がそれぞれADDITEMで設定されています。
同じくフォームロードでcbo1はEnabledプロパティがTrue、cbo2はFlaseです。
(最初にcbo1の選択を強制する意図です)

そしてcbo1の項目をマウスクリックで選択するとcbo2のEnabledをTrueにし、
SetFocusでcbo2にフォーカスを移動するようにしたものが以下のコーディングです。

Private Sub cbo1_click()
    cbo2.Enabled = True
    cbo2.SetFocus
End Sub

あとEnterキーでも同様の動きをさせるため以下のように書きました。

Private Sub cbo1_KeyPress(KeyAscii as Interger)
    IF KeyAscii = 13 Then
        cbo2.Enabled = True
        cbo2.SetFocus
    End If
End Sub

これで実際に実行すると、コンボボックスcbo1にフォーカスがある状態で↓や↑を押すと、
項目は移動可能なのですが、Clickイベントが発生するようで、フォーカスがcbo2に移動してしまいます。
これを、Enterキーを押すまでは↑↓キーを押してもフォーカスが移動しないようにするにはどのようにすればよいのでしょうか??

解決策として、フォームのKeyPreviewをTrueにして、処理を奪うこと等考えているのですがうまくいきません。

どうかわかる方がいらっしゃいましたらぜひ、返答お願いいたします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -