[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/07/18(Tue) 13:35
投稿者名:お茶
Eメール:
URL :
タイトル:
listboxの項目番号を取得
vb5.0でlistboxに表示された複数の行に対し、別のラベルで項目番号(インデックス番号)を表示させたいのです。
中にはIDが同じ数字のもの(1,1や2,2)もありますがそれを違う項目として取得するにはどのようにすればよいのでしょうか?

投稿時間:2006/07/18(Tue) 20:11
投稿者名:neptune
Eメール:
URL :
タイトル:
Re: listboxの項目番号を取得
このサイトの左のメニュー
カテゴリ別サンプル一覧
から
その他コントロール
リストボックスで良く使用する設定集
を見て分かりませんか?

せっかく公開してくれているんですから、先ず調べないとね。

※(上記、テキストボックスのサイズ内で改行処理をして下さい)
と投稿画面に書かれているように適当なところで改行入れてください。
読みにくいです。

投稿時間:2006/07/19(Wed) 10:33
投稿者名:お茶
Eメール:
URL :
タイトル:
Re^2: listboxの項目番号を取得
neptuneさん、ありがとうございました。
早速、サンプル一覧を新規で使ってテストをしたのですが、
指定の行を選択状態にする  指定の行のデータを取得するのところで
Private Sub Command1_Click()
  
  '指定の行を選択状態にする
  List1.Selected(CInt(Text1.Text) - 1) = True
  '指定行のデータを取得する
  Label1.Caption = List1.List(CInt(Text1.Text) - 1)

End Sub        
を設定したところ

”型が一致しません”というエラーがおきました。
これはこのままの使用ではだめなのでしょうか?

> このサイトの左のメニュー
> カテゴリ別サンプル一覧
> から
> その他コントロール
> リストボックスで良く使用する設定集
> を見て分かりませんか?
>
> せっかく公開してくれているんですから、先ず調べないとね。
>
> ※(上記、テキストボックスのサイズ内で改行処理をして下さい)
> と投稿画面に書かれているように適当なところで改行入れてください。
> 読みにくいです。

投稿時間:2006/07/19(Wed) 10:53
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: listboxの項目番号を取得
> ”型が一致しません”というエラーがおきました。
> これはこのままの使用ではだめなのでしょうか?

Text1.Text が空か数字以外の物が入っているからでは。

投稿時間:2006/07/19(Wed) 10:53
投稿者名:るしぇ
Eメール:
URL :
タイトル:
発言がかぶったので削除します。
発言がかぶったので削除します。

投稿時間:2006/07/19(Wed) 10:54
投稿者名:neptune
Eメール:
URL :
タイトル:
Re^3: listboxの項目番号を取得
> neptuneさん、ありがとうございました。
> 早速、サンプル一覧を新規で使ってテストをしたのですが、
どういうサンプルコードを書きましたか?

あのサンプル自体は全く持ってまっとうなもので、再現するサンプルソースを見ないと理由は
分かりません。
ほんとにプロシージャ内はUPしているコードだけですか?
ListBoxにデータは入れてますか?

>”型が一致しません”というエラーがおきました。
は何のデータで出ているのでしょう?又それはどのようなデータですか?
ListBoxのHelpを全部見てもたいした事ありません。
(というか普通知らないコントロールを使うときは何があるかぐらいは
ザッとでも目を通しますけど)

投稿時間:2006/07/19(Wed) 11:54
投稿者名:お茶
Eメール:
URL :
タイトル:
Re^4: listboxの項目番号を取得
すみません、何度も・・・いまいち理解していないようです。
今やりたいことは、ListBoxに重複したIDがありまして
その指定の行のデータを取得したいのですが、
たとえばID番号が ID1(1行目),ID1(2行目),ID1(3行目)と
ある場合その1行目のID1の結果をlabel1に表示はできるのですが、これを2行目のID1をlabel1に
表示させようとしても1行目のID1の結果が表示してしまうのです。

これをIDが同じでも中身の情報が違うのでそれをlabel1に表示させるのは可能でしょうか?

IDが重複していなく指定の行のデータを取得するはできたのですが・・・
Dim ID   As String ・・・Generalで設定

Private Sub list1_Click()
  
  ID = Mid(list1.Text, 3, 4)・・・・リストボックスのIDの数字を取得
  
label1 = ID

End Sub

すみませんがよろしくお願いいたします。

> > neptuneさん、ありがとうございました。
> > 早速、サンプル一覧を新規で使ってテストをしたのですが、
> どういうサンプルコードを書きましたか?
>
> あのサンプル自体は全く持ってまっとうなもので、再現するサンプルソースを見ないと理由は
> 分かりません。
> ほんとにプロシージャ内はUPしているコードだけですか?
> ListBoxにデータは入れてますか?
>
> >”型が一致しません”というエラーがおきました。
> は何のデータで出ているのでしょう?又それはどのようなデータですか?
> ListBoxのHelpを全部見てもたいした事ありません。
> (というか普通知らないコントロールを使うときは何があるかぐらいは
> ザッとでも目を通しますけど)

投稿時間:2006/07/19(Wed) 12:10
投稿者名:neptune
Eメール:
URL :
タイトル:
Re^5: listboxの項目番号を取得
> すみません、何度も・・・いまいち理解していないようです。
> 今やりたいことは、ListBoxに重複したIDがありまして
IDってなんですか?ListBox内のデータのこと?

> その指定の行のデータを取得したいのですが、
どうやって特定して、指定するのですか?検索はしてますか?

> たとえばID番号が ID1(1行目),ID1(2行目),ID1(3行目)と
> ある場合その1行目のID1の結果をlabel1に表示はできるのですが、これを2行目のID1をlabel1に
> 表示させようとしても1行目のID1の結果が表示してしまうのです。
それはListBox内の必要なデータを特定してないからです。

> これをIDが同じでも中身の情報が違うのでそれをlabel1に表示させるのは可能でしょうか?
中身の情報って何ですか?

> すみませんがよろしくお願いいたします。
と言われても私には訳がわかりませんし、想像する気もありませんから誰が読んでも
分かるように書いて下さい。

投稿時間:2006/07/19(Wed) 12:36
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re^5: listboxの項目番号を取得
人間が現実世界でできないことはプログラムでも無理だよ。

>今やりたいことは、ListBoxに重複したIDがありまして
>その指定の行のデータを取得したいのですが、
では、

  たとえばID番号が ID1(1行目),ID1(2行目),ID1(3行目)と
あるとします。ボクが選びたいのは"ID1"の行です。
ボクが選びたいのは何行目の"ID1"ですか?
…この質問に答えられないと実現できないのでは?

 そもそも同じIDで何かを区別しようというのが間違ってて、
(というか同じだと言っているものを区別って矛盾してます)
IDなんか関係なくて、行数で区別すればいいだけでは?。
 リスト上に無い情報を表示したいなら、配列でもなんでも
別に用意しておいて、そちらに情報を入れておけばいい
でしょ?

[VB6.0]まぁ、↓だけだったら ItemData 使えばいいんですが。
Private m_LabelList() As String

Private Sub Form_Load()
    Dim i As Integer
    With Me.List1
        .AddItem "あああ,ID1"
        .AddItem "てすと,ID1"
        .AddItem "おおお,ID1"
        ReDim m_LabelList(.ListCount - 1)
        For i = 0 To .ListCount - 1
            m_LabelList(i) = "らべる" & CStr(i)
        Next
    End With
End Sub

Private Sub List1_Click()
    Me.Label1.Caption = m_LabelList(Me.List1.ListIndex)
End Sub

投稿時間:2006/07/20(Thu) 16:59
投稿者名:お茶
Eメール:
URL :
タイトル:
Re^6: listboxの項目番号を取得
ご返事おくれましてすみません。
みなさんいろいろとありがとうございました。

vb6.0を使用してItemDataを使用しできました。
本当にありがとうございました。

> 人間が現実世界でできないことはプログラムでも無理だよ。
>
> >今やりたいことは、ListBoxに重複したIDがありまして
> >その指定の行のデータを取得したいのですが、
> では、
>
>   たとえばID番号が ID1(1行目),ID1(2行目),ID1(3行目)と
> あるとします。ボクが選びたいのは"ID1"の行です。
> ボクが選びたいのは何行目の"ID1"ですか?
> …この質問に答えられないと実現できないのでは?
>
>  そもそも同じIDで何かを区別しようというのが間違ってて、
> (というか同じだと言っているものを区別って矛盾してます)
> IDなんか関係なくて、行数で区別すればいいだけでは?。
>  リスト上に無い情報を表示したいなら、配列でもなんでも
> 別に用意しておいて、そちらに情報を入れておけばいい
> でしょ?
>
> [VB6.0]まぁ、↓だけだったら ItemData 使えばいいんですが。
> Private m_LabelList() As String
>
> Private Sub Form_Load()
>     Dim i As Integer
>     With Me.List1
>         .AddItem "あああ,ID1"
>         .AddItem "てすと,ID1"
>         .AddItem "おおお,ID1"
>         ReDim m_LabelList(.ListCount - 1)
>         For i = 0 To .ListCount - 1
>             m_LabelList(i) = "らべる" & CStr(i)
>         Next
>     End With
> End Sub
>
> Private Sub List1_Click()
>     Me.Label1.Caption = m_LabelList(Me.List1.ListIndex)
> End Sub