• ベストアンサー

ダイアログから画像ファイルは表示できますか。

Microsoft Visual Basic 2005を使用しています。 いろいろやっているのですがどなたか教えていただけませんか。 Buttonをクリックするとダイアログが開いて画像ファイルを参照させて画像ファイルを選択してからフォルダパスをtextboxに書き込むことはできますか。 同時に PictureBoxに画像を表示もできるのでしょうか。 よろしくお願いします。 もし、ご不明な点がありましたらお伝えください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

すみません Disposeで破棄するタイミングを間違えていたようです 今回の場合 Disposeで破棄する必要は無いですね m(__)m img.Dispose()を削除してください

heibondesu
質問者

お礼

ありがとうございました。(*^_^*) うまく動きました。 またお聞きすることになるとは思いますがよろしくお願いします。 この度は丁寧に教えていただき感謝しております。

その他の回答 (4)

回答No.5

#4 です。 最小限ソースは以下で試してください。#4 のソースは無視してください。 Dim img As Bitmap = New Bitmap(TextBox1.Text) PictureBox1.Image = img

回答No.4

とりあえず On Error Resume Next をコメントアウトして試す。 更には Dim img As Bitmap = Bitmap.FromFile(TextBox1.Text) ' ピクチャーボックスに表示 PictureBox1.Image = img ' 不要になったオブジェクトの開放 img.Dispose() って部分だけのテスト用コードを書き、テキストボックスにパスを入力して試してみる。 といった感じで問題を切り分ける作業をしてみては? んで今後の .NET 開発では On Error Resume Next を永遠に封印し、Try ~ Catch を使うようにしましょう。エラーが無視されてデバッグしづらいし、エラーの種類によって細かい制御をできないでしょ?

heibondesu
質問者

お礼

アドバイスありがとうございます。 色々やってみたのですがなかなかうまくいかず苦労しております。 今度はTry ~ Catch を使っていきたいと思っております。 またお聞きすることがあるとは思いますがよろしくお願いします。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

ファイル名に スペースなどが入っているのでしょうか そのとき与えたファイル名などの詳細を投稿してみましょう ファイル名にスペースなどが入っているなら dim sNamae as String sName = TextBox1.Text if instr(sName, " ") then  sName = """" & sName & """" end if dim img as Bitmap = Bitmap.FromFile( sName ) といった具合に ファイル(パス)名を ""で括ってみましょう

heibondesu
質問者

お礼

早速のご回答ありがとうございます。 C:\Users\******\Pictures\600x449-2007052900048.jpg *は半角英数のユーザー名です。 このファイル名はtextboxに反映されますがやはりPictureBoxには画像がでてきませんでした。 見ていただいてもわかるようにスペースなどはないようです。 他に禁止文字とかがあるのでしょうか。 他にどこかおかしな点などありましたら教えていただけませんしょうか。 よろしくお願いいたします。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

必要なコントロールをフォームに貼り付けます Button1、TextBox1、PictureBox1、OpenFileDialog1 最低限 OpenFileDialog1以外の3つのコントロールは必要です 次にコマンドボタンのClickイベントで   ' ファイルを開くダイアログの表示   If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then     ' 開くボタンが押されたなら     ' 指示されたファイル名をテキストボックスに設定     TextBox1.Text = OpenFileDialog1.FileName     ' 指示された画像ファイルを取り込む     Dim img As Bitmap = Bitmap.FromFile(TextBox1.Text)     ' ピクチャーボックスに表示     PictureBox1.Image = img     ' 不要になったオブジェクトの開放     img.Dispose()   End If といったコードを記述します エラーチェックや初期設定を省いていますのでその辺りは必要に応じて変更してください たとえば OpenFileDialogで指示されたファイルが画像ファイルでは無いとか 存在しないファイル名を指示されたとか

heibondesu
質問者

お礼

ご回答ありがとうございます。 ファイルパスはうまく表示されるのですが画像が表示できませんでした。 何かやり方がまずいのでしょうか。 Argument Exception 使用されたパラメータが有効ではありません。 とでて途中で止まってしまします。 もし、何かおかしな点などありましたら教えていただけないでしょうか。 Public Class Form2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click On Error Resume Next ' ファイルを開くダイアログの表示 If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' 開くボタンが押されたなら ' 指示されたファイル名をテキストボックスに設定 TextBox1.Text = OpenFileDialog1.FileName ' 指示された画像ファイルを取り込む Dim img As Bitmap = Bitmap.FromFile(TextBox1.Text) ' ピクチャーボックスに表示 PictureBox1.Image = img ' 不要になったオブジェクトの開放 img.Dispose() End If End Sub End Class