■ VB6でSSTABを使うとコンボボックスが反転表示してしまう

[Visual Basic 初心者掲示板] [過去ログの一覧]


ゆうな 2004/09/27(月) 23:55:01
いつもお世話になっております。
早速、質問なのですがVB6でSSTABを使い、その中にいくつかのコンボボックスを設定致しました。
実行して、いくつかのコンボボックスを選択し、タブを移動していると、コンボボックスがすべて反転表示されてしまいます。
これってどうにかならないのでしょうか?

特攻隊長まるるう 2004/09/28(火) 13:13:20
デフォルト設定のままでテスト実行してみましたが、タブを移動するためには
SSTab を選択する必要があり、その際、フォーカスが SSTab に移動する
ためコンボボックスの選択状態は解除され、複数のコンボボックスが反転
状態(選択状態)になるという現象を再現できませんでした。

現象を再現できる最小限のコード及びコントロールの設定、実行時の操作
方法を教えて下さい。

ゆうな 2004/10/04(月) 21:50:52
特攻隊長まるるうさん、ご回答ありがとうございます。
SSTABを一つ配置、TAB0にコンボボックスを二つ、TAB1にコンボボックスを二つ配置しました。
以下のコードを記述して、実行致しました。
TAB0でCombo1を「ああ」に設定、Combo2を「いい」に設定しました。
この時点で「ああ」も「いい」も反転にならないようにしました。
TAB1に移動して、すぐにTAB0に戻ってくるとCombo1もCombo2も反転表示されます。
私だけでしょうか?ちなみに環境はVB6SP5です。

Private Sub Form_Load()
    Combo1.AddItem "ああ"
    Combo1.AddItem "いい"
    
    Combo2.AddItem "ああ"
    Combo2.AddItem "いい"

    Combo3.AddItem "ああ"
    Combo3.AddItem "いい"
    
    Combo4.AddItem "ああ"
    Combo4.AddItem "いい"
End Sub

ABC 2004/10/04(月) 22:03:15
当方の環境はXP Pro Sp2 + VB6Sp6ですが
確かに再現しますね。
下記対策のいずれかで反転はしないようにできますがバグっぽいですね。

対策1
 SSTabのClickイベントでComboのSelLengthを0にセットしてやる。
対策2
 Comboのスタイルをドロップダウンリストにする。

特攻隊長まるるう 2004/10/05(火) 13:06:26
こちらでも再現しました。[Win2000(Sp4)VB6(Sp5)]
どうも検証イベントと関係ありそう…。そう言えば、
[VB.NET]でもちょっと動作は違うんですが、
AddItem してないテキストにしたままタブ移動を
繰り返すと勝手にテキストが変わってしまう現象が
起こってました。対処療法しかしてませんが(汗)。

コンボボックスの設定はデフォルト設定で
[VB6.0]
Private Sub Form_Load()
    Combo1.AddItem "ああ"
    Combo1.AddItem "いい"
    
    Combo2.AddItem "Combo2"
    Combo2.AddItem "いい"

    Combo3.AddItem "ああ"
    Combo3.AddItem "いい"
    
    Combo4.AddItem "ああ"
    Combo4.AddItem "Combo4"
End Sub

とし、コンボボックスは触らず、タブ移動だけ
行ってみて下さい。動きの違いが分かると思います。
…どう対処するかは…うーん(悩)。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library