C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: listviewで一個だけアイテムを選んだら


(過去ログ 13 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■4134 / inTopicNo.1)  listviewで一個だけアイテムを選んだら
  
□投稿者/ 美流久 (1回)-(2007/06/07(Thu) 16:47:54)

分類:[.NET 全般] 

こんにちは

VB2005で記述しています。

フォームにはpicturebox4ッ、listview、を配置しています。

listviewで、largeimageで表示させたアイテムを一個だけ選んだら選んだアイテムから順番に3個(計:選んだアイテムを含め4個)それぞれpictureboxに取得したいのですが、その場合はどのような感じの手順で記述するのでしょうか?
最初の選んだアイテムは選んだ物をpicturebox1へ反映出来ています。

アドバイス宜しくお願いします。
引用返信 編集キー/
■4135 / inTopicNo.2)  Re[1]: listviewで一個だけアイテムを選んだら
□投稿者/ επιστημη (535回)-(2007/06/07(Thu) 17:03:14)
επιστημη さんの Web サイト
選んだのが n 番目だったとしたら、ついでに n+1, n+2, n+3 番目を引っ張ってくるんじゃダメなの?

引用返信 編集キー/
■4136 / inTopicNo.3)  Re[2]: listviewで一個だけアイテムを選んだら
□投稿者/ シャノン (170回)-(2007/06/07(Thu) 17:11:40)
No4135 (επιστημη さん) に返信
> 選んだのが n 番目だったとしたら、ついでに n+1, n+2, n+3 番目を引っ張ってくるんじゃダメなの?

ラージアイコンってことなので、ユーザがドラッグ&ドロップでアイテムを並び替えることができた時、「順番」をどう定義するかが気になる。
引用返信 編集キー/
■4137 / inTopicNo.4)  Re[2]: listviewで一個だけアイテムを選んだら
□投稿者/ 美流久 (2回)-(2007/06/07(Thu) 17:20:51)
No4135 (επιστημη さん) に返信
そうゆうことですか!!
επιστημηさんありがとうございます。
ちなみにlistview内に記述しているんですが、

Dim lv As ListView = CType(sender, ListView)

  (他に色々記述しています)
PictureBox1.Image = Image.FromFile(lv.SelectedItems(0).Text)
PictureBox2.Image = Image.FromFile(lv.SelectedItems(0 + 1).Text)

だと、listview内でアイテムクリックしたらpicturebox1へ反映できるのですがそのままアイテム2個目はクリックもせず反映させたいんです。

これでは出来ないのですが、アドバイスお願い致します。

シャノンさん、ドラッグアンドドロップさせていません。。



引用返信 編集キー/
■4138 / inTopicNo.5)  Re[3]: listviewで一個だけアイテムを選んだら
□投稿者/ 特攻隊長まるるう (56回)-(2007/06/07(Thu) 17:40:38)
No4137 (美流久 さん) に返信
コードを選択した状態で[F1]キーを押すだけでヘルプ(MSDN)
が表示されますので、ぜひ読んでください。

SelectedItems は選択状態になっている Item のみを抽出
しますので、1つしか選んでないのなら
SelectedItems(0 + 1)
は存在しません。

n = .SelectedItems(0).Index
として、.Items(n) .Items(n + 1) .Items(n + 2)
を操作してみてください。
引用返信 編集キー/
■4142 / inTopicNo.6)  Re[3]: listviewで一個だけアイテムを選んだら
□投稿者/ 美流久 (3回)-(2007/06/07(Thu) 18:18:21)
2007/06/07(Thu) 18:19:51 編集(投稿者)
2007/06/07(Thu) 18:19:42 編集(投稿者)

特攻隊長まるるう さんありがとうございます。


selecteditemsの事をすっかり忘れていました。
ご指摘ありがとうございます☆

    Dim n As String
    n = lv.SelectedItems(0).Text

PictureBox1.Image = Image.FromFile(n)

PictureBox2.Image = lv.Items(n + 1)
と言う事でしょうか?
これだとエラーになってしまいます

引用返信 編集キー/
■4143 / inTopicNo.7)  Re[4]: listviewで一個だけアイテムを選んだら
□投稿者/ ぼのぼの (55回)-(2007/06/07(Thu) 18:24:01)
TextじゃなくてIndex
引用返信 編集キー/
■4144 / inTopicNo.8)  Re[4]: listviewで一個だけアイテムを選んだら
□投稿者/ Blue (311回)-(2007/06/07(Thu) 18:26:18)
>PictureBox2.Image = lv.Items(n + 1)
?
nって数字ですか?
Image.FromFileで使っているところ見ると文字列にしか見えないのですが。

さらに
>    Dim n As String
>    n = lv.SelectedItems(0).Text
>PictureBox1.Image = Image.FromFile(n)
というようにTextプロパティから文字列とってImage.FromFileを呼ばないと。

つまり

Dim n As Integer

With Me.ListView1
    n = .SelectedItems(0).Index 

    PictureBox1.Image = Image.FromFile(.Items(n).Text)
    PictureBox2.Image = Image.FromFile(.Items(n + 1).Text)
End With

ってことだと。

引用返信 編集キー/
■4146 / inTopicNo.9)  Re[5]: listviewで一個だけアイテムを選んだら
□投稿者/ 美流久 (4回)-(2007/06/07(Thu) 18:46:00)
No4144 (Blue さん) に返信
> >PictureBox2.Image = lv.Items(n + 1)
> ?
> nって数字ですか?
> Image.FromFileで使っているところ見ると文字列にしか見えないのですが。
>
> さらに
> >    Dim n As String
> >    n = lv.SelectedItems(0).Text
> >PictureBox1.Image = Image.FromFile(n)
> というようにTextプロパティから文字列とってImage.FromFileを呼ばないと。
>
> つまり
>
> Dim n As Integer
>
> With Me.ListView1
> n = .SelectedItems(0).Index
>
> PictureBox1.Image = Image.FromFile(.Items(n).Text)
> PictureBox2.Image = Image.FromFile(.Items(n + 1).Text)
> End With
>
> ってことだと。


Blueさんありがとうございます
思いっきり文字列でした。Blueさんのサンプルを参考にしてみたところ、出来ました。

>というようにTextプロパティから文字列とってImage.FromFileを呼ばないと。
勉強になりました!


どうもありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -