[リストへもどる]
一括表示

投稿時間:2004/03/29(Mon) 17:16
投稿者名:NOA
Eメール:
URL :
タイトル:
ListViewについて質問
今ListViewを使ってプロジェクトを作ってるんですが、
なかなか上手いこといかないので誰か助けて下さい。お願いします。
データの表示は出来たんですが、一行選択できません。プロパティで「FullRowSelect」ってゆうのがあるんですが、それが使えません。
そーいった場合はどーしたらいいんでしょ?

投稿時間:2004/03/29(Mon) 18:07
投稿者名:これ
URL :
タイトル:
Re: ListViewについて質問
> なかなか上手いこといかないので誰か助けて下さい。お願いします。
> データの表示は出来たんですが、一行選択できません。
> プロパティで「FullRowSelect」ってゆうのがあるんですが、それが使えません。
> そーいった場合はどーしたらいいんでしょ?

どう、うまくいかないのでしょうか?
「使えない」というのは?
CommonControl は IEのバージョンにも影響されますが・・・

下記サンプルで 1行選択できていますよ(Win2K VB6.0SP5 IE5.5SP2)

Private Sub Form_Load()
    Dim i As Integer
    With ListView1
        .View = lvwReport
        .FullRowSelect = True
        .ColumnHeaders.Add , , "Column 0"
        .ColumnHeaders.Add , , "Column 1"
        .ColumnHeaders.Add , , "Column 2"
        For i = 1 To 10
            .ListItems.Add , , "Main " & i
            .ListItems(i).SubItems(1) = "Sub 1-" & i
            .ListItems(i).SubItems(2) = "Sub 2-" & i
        Next i
    End With
End Sub

投稿時間:2004/03/30(Tue) 09:39
投稿者名:NOA
Eメール:
URL :
タイトル:
Re^2: ListViewについて質問
お返事ありがとうございます。
一応調べてみました。⇒(Win2K VB6.0SP5 IE5.0SP2)
あと、Windows Common Controls 5.0(SP2)を使っているので
「FullRowSelect」を使うとそんなメソッドまたはメンバーがないとゆわれてしまうのです。
なので、お解りでしたら面倒ですがサンプルのほうお願いします。

投稿時間:2004/03/30(Tue) 12:47
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: ListViewについて質問
》(Win2K VB6.0SP5 IE5.5SP2)
Win2k SP無し + IE5.5SP2、というのは、ちょっと問題があるかも…。
(SP無しだと、適用できないセキュリティパッチもありますし)

それぞれの最新のService Packは、
・Windows 2000 → Service Pack 4
・Visual Basic 6.0 → Service Pack 6
・Internet Explorer → 6.0 Service Pack 1
ですね。

> あと、Windows Common Controls 5.0(SP2)を使っているので
VB6はお持ちではありませんか?

> 「FullRowSelect」を使うとそんなメソッドまたはメンバーがないとゆわれてしまうのです。
SendMessage APIで、LVM_GETEXTENDEDLISTVIEWSTYLE の LVS_EX_FULLROWSELECT ビットを
立てればOKです。google等で探せば、VB5向けの具体的なサンプルも見つかるでしょう。

投稿時間:2004/03/30(Tue) 12:57
投稿者名:これ
URL :
タイトル:
Re^4: ListViewについて質問
> 》(Win2K VB6.0SP5 IE5.5SP2)
> Win2k SP無し + IE5.5SP2、というのは、ちょっと問題があるかも…。
> (SP無しだと、適用できないセキュリティパッチもありますし)
>
> それぞれの最新のService Packは、
> ・Windows 2000 → Service Pack 4
> ・Visual Basic 6.0 → Service Pack 6
> ・Internet Explorer → 6.0 Service Pack 1
> ですね。
いつもながらフォローありがとうございます。
当方の Win2Kは SP4 です。
セキュリティパッチの類も重要なものはあててます。
あとVB6.0 の 最新SPが 6というのは知りませんでした。早速あてねば!
IE6SP1は、当方の親方様の強い要望で・・・動作検証がどうとかこうとか・・・
いろいろしがらみがございます。(笑

投稿時間:2004/03/30(Tue) 12:58
投稿者名:NOA
Eメール:
URL :
タイトル:
Re^4: ListViewについて質問
お返事ありがとうございます。

> VB6はお持ちではありませんか?
> 一応VB6.0を使っています。

今までYahoo!しか検索してなきあったんでgoogleでも検索してみます。

投稿時間:2004/03/30(Tue) 14:07
投稿者名:NOA
Eメール:
URL :
タイトル:
Re^4: ListViewについて質問
度々すみません。魔界の仮面弁士さんのおかげで解決しましたが、
実行した時に最初の一行目は選択されるんですが、色(アクティブ)がついてないのです。
そのあと、なんらかのアクション(キーを押す)と、色が付いてくれます。
実行した直後に色を付けるにはどーしたらいいんでしょ?
何度もお手数ですが宜しくお願いします。

投稿時間:2004/03/30(Tue) 17:22
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^5: ListViewについて質問
> 度々すみません。魔界の仮面弁士さんのおかげで解決しましたが、
Users Group Mailing Listに投稿されているのと、同じ方ですよね?
もし同じ方だとすれば、あちらへも解決報告をお願いします。

> 実行した時に最初の一行目は選択されるんですが、色(アクティブ)がついてないのです。
ListViewの[選択]には、幾つかの意味がありますが、この場合は、
  (a) 項目の周りが点線で囲まれた状態
  (b) 項目の背景色が選択色になっている状態
  (c) 項目のチェックボックスがチェックされている状態
のうち、bに相当する状態にしたいという事でしょうか?
(aとbの違いは、MultiSelect = Falseの時にはわかりにくいのですが…)

aに関しては、ListViewオブジェクトのSelectedItemプロパティで変更できます。
bに関しては、ListItemオブジェクトのSelectedプロパティで変更できます。
cに関しては、
 VB6では、ListItemオブジェクトのCheckedプロパティで変更できます。
 VB5では、SendMessage APIで、LVM_SETITEMSTATE メッセージを使って変更できます。

bについては、ListViewがフォーカスを持っているかどうかによって
見た目が変わります。また、HideSelectionプロパティの影響も受けます。

> 実行した直後に色を付けるにはどーしたらいいんでしょ?
選択とは別に、項目の色を変えたいという話であれば、
    ListView1.ListItems(1).ForeColor = vbGreen
のようにして、項目の色を変更できます。(Ver 6.0の場合)

投稿時間:2004/03/30(Tue) 17:39
投稿者名:NOA
Eメール:
URL :
タイトル:
Re^5: ListViewについて質問
> もし同じ方だとすれば、あちらへも解決報告をお願いします。
分かりました。ご協力ありがとうございました。
> > 実行した時に最初の一行目は選択されるんですが、色(アクティブ)がついてないのです。
> ListViewの[選択]には、幾つかの意味がありますが、この場合は、
>   (a) 項目の周りが点線で囲まれた状態
>   (b) 項目の背景色が選択色になっている状態
>   (c) 項目のチェックボックスがチェックされている状態
> のうち、bに相当する状態にしたいという事でしょうか?
一応(a)の状態だと思われます。

投稿時間:2004/03/30(Tue) 19:56
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^6: ListViewについて質問
> > もし同じ方だとすれば、あちらへも解決報告をお願いします。
> 分かりました。ご協力ありがとうございました。

あちらにも投稿して貰えたようですね。
ただ、説明不足だったかもしれませんが、私がお願いしたのは、
「お礼の投稿」ではなく、「結果報告」だったのです。

つまり、『どういう方法を使って解決できたのか』という情報を
投稿して頂きたかったのです。(次回質問時は、結果報告もお願いしますね)

# 下記サイトの [まとめのメール]というトピックを読んでみてください。
# http://www.hyuki.com/writing/techask.html#wrapup


> > > 実行した時に最初の一行目は選択されるんですが、色(アクティブ)がついてないのです。
> > ListViewの[選択]には、幾つかの意味がありますが、この場合は、
> >   (a) 項目の周りが点線で囲まれた状態
> >   (b) 項目の背景色が選択色になっている状態
> >   (c) 項目のチェックボックスがチェックされている状態
> > のうち、bに相当する状態にしたいという事でしょうか?
> 一応(a)の状態だと思われます。

あらら。『(a)の状態にしたいのに、(a)の状態になっていない』という意味でしたか…
てっきり『(b)の状態にしたいのに、(b)の状態になっていない』という意味かと思ってました。(^^;


さて。(a)の状態になっていないとの事ですが、以下の点について確認してみてください。

・選択させたいListItemを、SelectedItemプロパティにSetしていますか?
 SelectedItemがNothingの状態のままだと、どこにもカーソルが無い状態になります。

・ListViewにフォーカスはあたっていますか? フォーカスが無いと、点線の囲みは見えません。
 必要に応じて、SetFocusメソッドを実行してみてください。

投稿時間:2004/03/31(Wed) 09:23
投稿者名:NOA
Eメール:
URL :
タイトル:
感謝
> あちらにも投稿して貰えたようですね。
> ただ、説明不足だったかもしれませんが、私がお願いしたのは、
> 「お礼の投稿」ではなく、「結果報告」だったのです。
>
> つまり、『どういう方法を使って解決できたのか』という情報を
> 投稿して頂きたかったのです。(次回質問時は、結果報告もお願いしますね)
>
> # 下記サイトの [まとめのメール]というトピックを読んでみてください。
> # http://www.hyuki.com/writing/techask.html#wrapup

魔界の仮面弁士さんにはとてもお世話になりありがとうございます。
これはからは、ちゃんと「結果報告」をして終わりたいと思います。

> > > > 実行した時に最初の一行目は選択されるんですが、色(アクティブ)がついてないのです。
> > > ListViewの[選択]には、幾つかの意味がありますが、この場合は、
> > >   (a) 項目の周りが点線で囲まれた状態
> > >   (b) 項目の背景色が選択色になっている状態
> > >   (c) 項目のチェックボックスがチェックされている状態
> > > のうち、bに相当する状態にしたいという事でしょうか?
> > 一応(a)の状態だと思われます。
>
> あらら。『(a)の状態にしたいのに、(a)の状態になっていない』という意味でしたか…
> てっきり『(b)の状態にしたいのに、(b)の状態になっていない』という意味かと思ってました。(^^;
>
あと、最後に私も説明不足だったみたいで(a)の状態にしたいんではなく
今現在(a)の状態だとゆうことです。m(_ _)m 
つまり、立ち上げた時には、選択状態になっててほしいんです。
すいません。説明不足の上説明下手で。

投稿時間:2004/03/31(Wed) 10:41
投稿者名:NOA
Eメール:
URL :
タイトル:
Re: 感謝
自分なりにいろいろと試行錯誤していった結果なんとかうまくいけました。

Set WK1 = LSTSHO.GetFirstVisible
WK1.Selected = True

とゆう形ではありますが、一応立ち上げたと時に最初の項目を
選べる(項目の周りが点線で囲まれた状態かつ囲まれたところがアクティブ)ようになりました。
今回はかなりお世話になり非常に助かりました。
また、問題が発生した時には助けていただきたいと思っております。
ありがとうございました。