リストボックスのダブルクリックについて

[戻る]
テル 2002/06/17(月) 10:19:43
Windows2000
VB6 0#

始めまして。
VBを始めて間もない初心者ですがよろしくお願いします。

大変基本的な質問なのですが、リストボックスをダブルクリックして
表示されている項目を選択するにはどうすれば良いのでしょうか??
ただ単にクリックして選択するならできるのですが...。

どうかご教示をお願いいたします。

べーちゃん 2002/06/18(火) 00:51:06
こんにちはテルさん、ベーちゃんです。

>大変基本的な質問なのですが、リストボックスをダブルクリックして
>表示されている項目を選択するにはどうすれば良いのでしょうか??
>ただ単にクリックして選択するならできるのですが...。

リストボックスをダブルクリックしても項目の選択自体は一回目の
クリックで行われるので関係なく選択されているはずですが。
もしかして、クリックでは選択できなくして、ダブルクリックで
選択するということですか。
もう少し具体的に説明してもらわないとわかりにくいですね。

あと、私からのアドバイスですが、キー操作に関する部分はどう考えて
おられますか。それと、以前の質問に関する部分でもコメントした
ことがありますが、VBはVCとは異なり余り細かいところまで制御する
言語じゃないので、コントロールの操作方法などの本来備わっている
機能を変更するのには向きません(画面のちらつきが残ったりするなど
多々問題が残ることがあります)。
なにか今あることに追加するのであれば簡単ですが、ある機能を殺して
他の機能に置き換えるなどは正直言って初心者には向かないですね。
初心者であれば最初はVB(または市販のコントロール)の機能を使う
だけのプログラムを組んだ方が無難ですよ。

そこで、提案
1.再度仕様を練り直しVBのコントロールの機能自体を変えないようにする。
2.市販のコントロールで目的の機能を持っているものに置き換える
3.自分でコントロールを作る(但し、初心者には不向きですよ)

yas0302 2002/06/20(木) 21:47:05
質問の意図が、よくわかりませんが、(※正確にわからないという意味)
こんなことがしたいのでは、ないですか?


Private Sub List1_DblClick()
    Dim Idx As Long
    
    Idx = List1.ListIndex
    If Idx = -1 Then
        MsgBox "選択されてません"
    Else
        MsgBox Format(Idx) & "番目の" & List1.List(Idx) & "が選択されました"
    End If
End Sub

List1_Click() では、キー操作で、選択項目が変わった時にも
飛んでくるのが、まずいということなのでは????

べーちゃん 2002/06/21(金) 00:52:07
こんにちはyas0302さん、べーちゃんです。

つまらないことを聞きますが

>    Idx = List1.ListIndex
>    If Idx = -1 Then
>        MsgBox "選択されてません"

この部分のコードですが、これ実行されますか?
ClickイベントもDblclickイベントも項目上以外のエリアの
クリックではイベントが発生しないと思うのですが。

>List1_Click() では、キー操作で、選択項目が変わった時にも
>飛んでくるのが、まずいということなのでは????

うーん、そうなるとテルさんはダブルクリックイベントを知らな
かったということになるのですが、もしダブルクリックのような
基本的なイベントすら知らないのであれば、人に聞くよりも先に
VBの本を買うなりして勉強した方がいいかも。

私は初心者であることは悪くないとは思います。かつては私も
初心者でしたし、でもこれは自論なんですが「一旦自分で
プログラムを組むことになれば、そこからは自分が初心者で
あることを忘れる」方がいいと思います。
会社なんかで先輩について研修をうけているのであれば別ですが、
特に仕事としてプログラムを組むのであれば初心者であっても
責任をもってプログラムを組まなければなりません。
初心者だからといってバグのあるプログラムを出したら顧客は
怒ってお金を払ってくれないでしょ。つまり、初心者を捨てないと
いけないことになります。

教えられないと何もできない「初心者」からある程度のヒントが
あれば、それを元に先に進もうとする「経験の少ないだけのプロ」に
ならないとだめじゃないかな(たとえ趣味であったとしても)。
自力で前に進もうとする姿勢、それが人を成長させるんじゃないかな。

ちょっとくさい話になっちゃったな。
でも、いいたかったことは、たとえ初心者であっても丸投げじゃなくて
ある程度は自力で調べてみて(特にVBはVCと違って簡単にサンプルを
組んで確認したりできるでしょ)、その上で質問した方がいいのでは
ということです。それがこのようなコミュニティにおける質問する
側のルールじゃないでしょうか(学校じゃないからね)。

多々に自論が入ってしまったのでもしこれを読んで気を悪くされた
方がおられたら申し訳なく思います。

yas0302 2002/06/21(金) 01:32:43
べーちゃん こんばんは。

> この部分のコードですが、これ実行されますか?
> ClickイベントもDblclickイベントも項目上以外のエリアの
> クリックではイベントが発生しないと思うのですが。

おしゃるとおり、実行されないでしょう。
念の為です。(無駄。。。)

古いスレッドには追加発言できません。