dポイントプレゼントキャンペーン実施中!

質問です。
ローカル(例: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で作る予定です。

A 回答 (2件)

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



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

この回答への補足

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

なぜでしょうか?

補足日時:2008/11/07 17:34
    • good
    • 0
この回答へのお礼

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

補足の件はなんとか出来ました。
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

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/08 08:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!