DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コンボボックスのEnable

環境/言語:[Win 2000 Pro]
分類:[VB6以前]

こうです いつもお世話になっております。
VB6.0のコンボボックスのことで質問がしたいんですが、

 前にも少し質問してまた考えてみたんですがわからないので書き込みしました。

コンボボックスはアイテムを選択した時にclickイベント等が発生すると思うんですが、
コンボボックスがForm_Load時にEnableがFalseの場合それをコンボボックスをダブル
クリックすることでEnableをTrueに変えることはかのうでしょうか??
コンボボックス自体にクリックイベントを発動するのは無理みたいなので、例えば座標
的に(x,y)-(a,b) をクリックしたらそこに配置しているコンボがTrueになるなどの
方法はないでしょうか? これ以外にもよい考えのある人は教えて下さい。
わかりにくい説明ですいません。

よろしくお願いします。 こう
> コンボボックスがForm_Load時にEnableがFalseの場合それをコンボボックスをダブル
> クリックすることでEnableをTrueに変えることはかのうでしょうか??

Form_Load時にEnableがFalseとなるのは想定した動きなのでしょうか?
■No5467に返信(いなさんの記事)
>>コンボボックスがForm_Load時にEnableがFalseの場合それをコンボボックスをダブル
>>クリックすることでEnableをTrueに変えることはかのうでしょうか??
こうさん、こんにちは
コンボBOXの背面にコンボと同じサイズでLabelをおいておくと、ラベルのダブルクリックが拾えますので、こちらのイベントでコンボをEnableにしてやるのがよいかと。

でも、後から他の人が見てラベルが隠れてたらわかりずらいので
ちゃんとわかるようにしておいてあげるのがよいかと^^;
ご返事ありがとうございます。
そのやり方でやるとうまくいきました。ありがとうございます。
しかしなんとかフォームの座標からひらってくる実装はないでしょうか?
わかる方がいれば教えて下さい。
ラベルのやり方もとても勉強になりました。ありがとうございます。

こう
■No5470に返信(こうさんの記事)

> しかしなんとかフォームの座標からひらってくる実装はないでしょうか?

 なんとかって‥‥ご自身で色々試したりはしていないのでしょうか?(^_^;)
 下記のような感じで実装可能かと思います。
# フレーム等、フォーム以外をコンテナにしてるようでしたら、そのコントロールのイベントに
# 記述するようにして下さい。


Private mx As Single
Private my As Single

Private Sub Form_DblClick()
    With Combo1
        If .Enabled Then Exit Sub
        If (.Left <= mx And mx <= .Left + .Width) And _
           (.Top <= my And my <= .Top + .Height) Then .Enabled = True
    End With
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    mx = X: my = Y
End Sub
深山さんどうもありがとうございます

そのとうりにやるとうまくいきました。
何分まだまだ初心者なので色々と調べたりしたんですが、
調べ方が悪かったのかうまくいかなくて困ってました。
ほんとうにありがとうございます。
これからもよろしくです。

こう
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板