Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
複数のファイルを表示させたい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9349#CommentId12879
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
よねKEN
 (社会人)
投稿日時
2009/9/15 23:21:31
> しかし、このような冗長なコードでいいのですか?
よいかどうかを決めるのはkentさん次第です。
仕様(期待する動作)を満たしているなら、まずはOKでしょう。
満たしていないなら、そちらを解決するのが先だと思います。
その上で、より綺麗なコードにならないかを考えるのはよいことです。
で、問題がないかどうかについてですが、例えば、
選択されるファイル数が5つ以外だった場合にエラーになりますね。
私だったらどうするかという一例を以下に示します。
--
'前提:選択する画像の数は配置しているPictureBoxの数と同じにしてもらう、という仕様としています。
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim pictureBoxes() As PictureBox = New PictureBox(){ _
PictureBox1, PictureBox2, PictureBox3, PictureBox4, PictureBox5 }
If OpenFileDialog1.FileNames.Length = pictureBoxes.Length Then
TextBox1.Text = ""
For fileIndex As Integer = 0 To pictureBoxes.Length - 1
Dim fname As String = OpenFileDialog1.FileNames(fileIndex)
TextBox1.Text &= fname & vbCrLf
Using fs As Stream = New FileStream(fname)
pictureBoxes(fileIndex).Image = Image.FromStream(fs, FileMode.Open)
End Using
Next
Else
MessageBox.Show("ファイルは" & pictureBoxes.Length.ToString() & "つ選択してください。")
End If
End If
--
このコードではPictureBox1~PitucreBox5への画像の設定をループ処理で行うために、
PictureBox1~PitucreBox5をPictureBoxの配列に予め設定するようしている
ところがポイントです。
#Using句を使っていたり、Image.FromFileの代わりにImage.FromStreamを使うように修正
#していますが、この辺りは、ご質問の本題とは無関係ですので、あまり気になさらずに・・・