こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

comboBoxのファイル取得とPictureBoxで画像表示

質問です。
ローカル(例:C:\Program Files\Test\1.jpg)等の中身(1.jpg)を、
取得してその取得した物をComboBoxの中で表示
そして表示されたComboBoxをクリックして取得した1.jpgを
クリックするとPictureBoxに表示する。
"1.jpg","2.jpg","3.jpg"が複数有る場合は、

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click
'上記でもいいが下記の方法が MSDN でも紹介されています。
'最初にイメージによって使用されているメモリを解放してから、グラフィックを消去します
With PictureBox1
If Not (.Image Is Nothing) Then
.Image.Dispose()
.Image = Nothing
End If
End With
End Sub

と明記してPictureBoxの中身を消して
ComboBoxで取得された2.jpgを読込む

この様なソースコードを書きたいのですが、
ComboBoxにどの様に書けば良いのか困ってます。
どうか教えて下さい。
Form1で作る予定です。

投稿日時 - 2008-11-07 16:19:30

QNo.4460498

すぐに回答ほしいです

質問者が選んだベストアンサー

コンボボックスなら SelectIndexChangedイベントを使うといった具合になるでしょう

コンボボックスをダブルクリックするなどして イベントハンドラを生成します
dim ss as String = ComboBox1.Items(ComboBox1.SelectedIndex).ToString
dim sPath as string = "ファイルのパス" & ss
dim bmp as New Bitmap( sPath );
PictureBox1.Image = bmp
といった具合でしょう

投稿日時 - 2008-11-07 16:35:50

補足

最後の
dim bmp as New Bitmap( sPath );
PictureBox1.Image = bmp
2行ですが、デバッグすると怒られます。
";"は、"文字が有効ではありません"と怒られ、
"bmp"では無く"jpg"にした結果、
"名前 'jpg' は宣言されていません。"と怒られます。

なぜでしょうか?

投稿日時 - 2008-11-07 17:34:34

お礼

補足の件で解決したけど、一部エラーになるのでここで書きます

補足の件はなんとか出来ました。
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim ss As String = ComboBox1.Items(ComboBox1.SelectedIndex).ToString
Dim sPath As String = "C:\Program Files\test" & ss
Dim jpeg As New Bitmap(sPath)
PictureBox1.Image = jpeg
End Sub

出来ましたが、デバッグしてもコンボボックスをクリックして
空白のままでした。
なぜですか?
イベントで"SelectIndexChangedが見つかりません"と怒られ、
上記にしても無理でした。VB2008だから・・でしょうか?

投稿日時 - 2008-11-07 17:53:22

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Dim sPath As String = "C:\Program Files\test" & ss

Dim sPath As String = "C:\Program Files\test\" & ss
でしょうね

コンボボックスへのデータの設定はプログラマーの責任です

Form_Loadのイベントなどで
Dim objDir as new IO.DirectoryInfo( "C:\Program Files\test")
ComboBox1.Items.Clear()
for each objFile as IO.FileInfo in objDir.GetFiles("*.jpg")
  ComboBox1.Items.add( objFile.Name )
next
などで設定が必要でしょう

投稿日時 - 2008-11-07 18:33:57

補足

ご指摘有り難うございます。
なるほど!ロードイベントですねぇ・・。


解決しました。
ありがとうございます。

投稿日時 - 2008-11-08 08:30:17

あなたにオススメの質問