一つのボタンを使用して、一括で選択したいのですが、どう組めば良いのでしょうか?
また、リストビューのデータを選択し、他のデータに貼り付けるにはどうしたらいいのでしょうか?FileCopyを使うことは分かっているのですが、ファイル名を指定せずに、その時々に選んだファイルを使ってやりたいので組み方を教えて頂きたい。
>一つのボタンを使用して、一括で選択したいのですが、どう組めば良いのでしょうか?
スレッドが変わった場合、環境は再度明記してください。特に[VB6.0]か[VB.NET]かの
違いは大きいのです。
[VB6.0]
全ての ListItems で Selected プロパティを True に設定してください。
>また、リストビューのデータを選択し、他のデータに貼り付けるにはどうしたらいいのでしょうか?
>FileCopyを使うことは分かっているのですが
質問が曖昧です。通常リストビューのデータというと表示されている文字列と
解釈できますが、確実ではありません。構造体などを関連付けすることもできると
思いますし…表示されている文字列としても FileCopy との関連性が全くありません。
『他のデータに貼り付ける』とか言われても他のデータがファイルなのか
他のコントロールなのか…貼り付けるという行動自体もファイルをコピーして
移動するだけなのか、ファイルのデータとして書き込むのか…。
ヘルプで使われているような標準的な表現を心掛けてください。
…でもまあ、それが理解できてくる頃にはその言葉でヘルプを
検索すれば、質問しなくても普通に書いてある内容ですが…(汗)
今回の場合
1.リストビューの(複数)選択されている文字列を取り出す方法
2.文字列(フルパス)を使用してファイルをコピーする方法
と予想しますが、質問するなら別けて質問すべきでしょう。
2.は FileCopy そのものですので質問するまでも無いと思います。
1.は FileCopy は全く関係ないです。
[VB6.0]
全ての ListItems で Selected プロパティが True な ListItems
の Text プロパティから取得してください。
環境:Windows2000、VB6.0 SP5
リストビュー項目の複数選択については、
Private Sub cmdAllChoice_Click()
'' 変数宣言
Dim lnglvIndex As Variant 'リストビューのIndex格納変数
'' 全て選択状態(True)にする
For Each lnglvIndex In ListView1.ListItems
lnglvIndex.Selected = True
Next lnglvIndex
'' リストビューにフォーカスを移す
ListView1.SetFocus
End Sub
で解決しました。
Variant 型を使わないようにするならこんなのとか
[VB6.0]
Dim i As Integer
With Me.ListView1
For i = 1 To .ListItems.Count
.ListItems(i).Selected = True
Next
End With
解決です。
有難う御座いました。
> Dim lnglvIndex As Variant 'リストビューのIndex格納変数
・変数名に「lng」の接頭辞を付けるのは、Long型の時だけにした方が良いでしょう。
・コメント部に「Index格納」とありますが、ここにはIndexは渡されません。(ListItemが渡されます)
・この場合は、「As Variant」よりも、「As ListItem」の方が望ましいかと。
「As Variant」→「As ListItem」に変更しておきます。
返信、有難う御座います。