- ベストアンサー
ダイアログから画像ファイルは表示できますか。
Microsoft Visual Basic 2005を使用しています。 いろいろやっているのですがどなたか教えていただけませんか。 Buttonをクリックするとダイアログが開いて画像ファイルを参照させて画像ファイルを選択してからフォルダパスをtextboxに書き込むことはできますか。 同時に PictureBoxに画像を表示もできるのでしょうか。 よろしくお願いします。 もし、ご不明な点がありましたらお伝えください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
すみません Disposeで破棄するタイミングを間違えていたようです 今回の場合 Disposeで破棄する必要は無いですね m(__)m img.Dispose()を削除してください
その他の回答 (4)
- temtecomai2
- ベストアンサー率61% (656/1071)
#4 です。 最小限ソースは以下で試してください。#4 のソースは無視してください。 Dim img As Bitmap = New Bitmap(TextBox1.Text) PictureBox1.Image = img
- temtecomai2
- ベストアンサー率61% (656/1071)
とりあえず On Error Resume Next をコメントアウトして試す。 更には Dim img As Bitmap = Bitmap.FromFile(TextBox1.Text) ' ピクチャーボックスに表示 PictureBox1.Image = img ' 不要になったオブジェクトの開放 img.Dispose() って部分だけのテスト用コードを書き、テキストボックスにパスを入力して試してみる。 といった感じで問題を切り分ける作業をしてみては? んで今後の .NET 開発では On Error Resume Next を永遠に封印し、Try ~ Catch を使うようにしましょう。エラーが無視されてデバッグしづらいし、エラーの種類によって細かい制御をできないでしょ?
お礼
アドバイスありがとうございます。 色々やってみたのですがなかなかうまくいかず苦労しております。 今度はTry ~ Catch を使っていきたいと思っております。 またお聞きすることがあるとは思いますがよろしくお願いします。
- redfox63
- ベストアンサー率71% (1325/1856)
ファイル名に スペースなどが入っているのでしょうか そのとき与えたファイル名などの詳細を投稿してみましょう ファイル名にスペースなどが入っているなら dim sNamae as String sName = TextBox1.Text if instr(sName, " ") then sName = """" & sName & """" end if dim img as Bitmap = Bitmap.FromFile( sName ) といった具合に ファイル(パス)名を ""で括ってみましょう
お礼
早速のご回答ありがとうございます。 C:\Users\******\Pictures\600x449-2007052900048.jpg *は半角英数のユーザー名です。 このファイル名はtextboxに反映されますがやはりPictureBoxには画像がでてきませんでした。 見ていただいてもわかるようにスペースなどはないようです。 他に禁止文字とかがあるのでしょうか。 他にどこかおかしな点などありましたら教えていただけませんしょうか。 よろしくお願いいたします。
- redfox63
- ベストアンサー率71% (1325/1856)
必要なコントロールをフォームに貼り付けます 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で指示されたファイルが画像ファイルでは無いとか 存在しないファイル名を指示されたとか
お礼
ご回答ありがとうございます。 ファイルパスはうまく表示されるのですが画像が表示できませんでした。 何かやり方がまずいのでしょうか。 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
お礼
ありがとうございました。(*^_^*) うまく動きました。 またお聞きすることになるとは思いますがよろしくお願いします。 この度は丁寧に教えていただき感謝しております。