• ベストアンサー

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

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

関連するQ&A

  • ファイル選択ダイアログが表示しない

    javascriptで<INPUT type=file name=faile1>を file1.click();でクリックしてファイル選択ダイアログを表示させようとしても表示しません。 formから <INPUT type=file id=file1 name=image style="DISPLAY: none"> <INPUT type="image" src="./img/up02.jpg" id=button1 value=Button name=button1 を出すとファイル選択ダイアログが表示されます。 独自のボタンイメージでファイル選択ダイアログを表示したいために <INPUT type="image"をクリックされたときにjavascriptで <INPUT type=file をクリックさせています。 したいことは、独自のボタンで、ファイル選択ダイアログを表示して、 phpに選択されたファイルパスを送信したいです。 下記コードをご参考にしてください。 <html> <head> <title>upload test</title> </head> <body> 何かの編集ページとか <iframe name="uploader" src="" style="width:0px;height:0px;border:0px;"></iframe> <form name=form1 target="uploader" method="POST" action="http://*.**.**.*/test.php" enctype="multipart/form-data"> <INPUT type=file id=file1 name=image style="DISPLAY: none"> <INPUT type="image" src="./img/up02.jpg" id=button1 value=Button name=button1 LANGUAGE=javascript onclick="return button1_onclick()"/> </form> <script type="text/javascript"> <!-- function button1_onclick() { window.alert("クリックされた"); file1.click(); document.form1.submit(); } //--> </script> </body> </html>

  • Listboxで選んだファイルの表示

    すみませんがまた質問させてください。 OS Vista ブラウザ IE7 Visual Basic 2005 Express Edition やりたいこと Listbox1から選んだ画像ファイルをPictureBox1に表示させてtextbox1に画像ファイルの場所を表示させたい。 どうすればいいでしょうか。ご教授ください。

  • C#のforeachに苦しめられてます。

    foreachで複数のDLLの情報をもってきて、一つのコレクションに集めます。集めたコレクションの次のコレクションに移ると最初のコレクションの情報が上書きされてしまうのが悩みです。 foreach (var e in dll) { var PictureBox1 = new PictureBox();//画像が表示される場所はずれて重ならなくなっている。 PictureBox1.Click += (s, e) => { 既につくられているtextBoxの削除("textBoxの名前");//名前指定で削除できる自作関数 既につくられているbuttonの削除("buttonの名前"); 関数(); } } DLL1.dll 関数(){   textBoxの作成(); buttonの作成();   クリックしたときのイベント{    textBox.Text="DLL1";   } } DLL2.dll 関数(){   textBoxの作成(); buttonの作成();   クリックしたときのイベント{    textBox.Text="DLL2";   } } どちらの画像(PictureBox1)をおしても、ボタンとtextboxが作られますが、なぜか、2回目の画像のクリックではボタンの削除がうまくいかず、textBoxだけが削除され作り直されます。 さらに、どちらのボタンを押してもtextboxにはDLL2が入力されてしまいます。 どのように解決したらよいでしょうか?

  • コモンダイアログのファイルを開くについて

    Windowsのファイルを開くダイアログで、ファイルを開くダイアログから エクセルファイルを選択し、開くボタンを押したら、選択された エクセルファイルを開きたいのですが、ヘルプで参照したところコモンダイアログ があるのを知りました。 ダイアログを開くところまでは、できたのですが、次にエクセルファイルを選択 し、開くボタンを押したときのイベントってどうやってとればよいのかわかりません。 開くボタンを押時に、選択されているパスを取りたいのですが、それもどうやって 取ればよいのやら、、、(+_+) ご教示ねがえませんでしょうか? よろしくお願いいたします。

  • 複数画像表示切り替え Visual c++

    Visual Studio C++ を用いて、複数選択した画像をPictureBoxに順に表示させて、一定時間間隔で、表示される画像が切り替わるようなプログラムを作りたいと考えています。 現在のところ、ファイル選択ダイアログで表示させたい画像を複数選択し、OpenFileDialogのFileNamesにファイル名を配列の形で格納します。 ここからが問題なのですが、それらのファイル名を順に呼び出して、PictureBoxに表示させて、Sleep()で任意の時間待って、また次の画像ファイルを呼び出して・・・というふうにしたのですが、実行させてみると、最後に選択された画像ファイルのみが表示されて終わってしまいます。 複数選択した画像ファイルを一定時間間隔で切り替えるには、もっと特別なことを考えないといけないのでしょうか。具体的な考え方、コーディングの仕方を教えていただけると幸いです。 以下に、ソースコードを示します。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・省略 // //button1 // private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { openFileDialog1 = gcnew OpenFileDialog(); openFileDialog1->Multiselect = true; if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK){ array<String^> ^filename = gcnew array<String^>(openFileDialog1->FileNames->Length); for(int i=0; i<openFileDialog1->FileNames->Length; i++){ filename[i] = openFileDialog1->FileNames[i]; } } } // //button2 // private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Bitmap^ bmp; for(int i=0; i<openFileDialog1->FileNames->Length; i++){ bmp = gcnew Bitmap(openFileDialog1->FileNames[i]); pictureBox1->Image = bmp; Sleep(100); } }

  • AccessVBAでダイアログの表示

    すみません、AccessVBA初心者です。 ボタンクリック時フォルダ参照ダイアログを表示してフォルダを選択した後、再度ボタンをクリックした時 前回指定したディレクトリが指定された状態でフォルダ参照ダイアログを表示させたく、調べていますがよくわかりません。 現在はGetBrowseFolderというもので参照ダイアログを開いているのですが、 必ずマイコンピュータを指定しています。 参考になるURL等何かありましたらよろしくお願い致します。

  • ファイルとフォルダのどちらも選択できるダイアログ

    環境  OS:Win2000及びWinXP  バージョン:VB6.0 SP5 ファイルとフォルダのどちらも選択できるダイアログを使用する為のAPIを探しています。 詳しく言うと、Windowsのエクスプローラ上で右クリックから新規のショートカットを作成した際の、 ウィザードにて参照ボタンを押下した際に表示される使用されているダイアログのようなものです。 フォルダまたはファイルだけのダイアログをAPIにて表示できる方法は調べて分かったのですが、 フォルダとファイルをどちらでも選択できるダイアログが見つかりませんでした。 逆にフォルダまたはファイルだけのダイアログのAPIのオプションの違いなのでしょうか? ヒント・キーワード・参考サイトだけでも良いので、 よろしくお願いします。

  • Visual Studio .Net 2003 C++ ダイアログベース(MFC) でファイルを開くダイアログを付けるには

    Visual Studio .Net 2003 C++ ダイアログベース(MFC) で あるボタンを押すと「ファイルを開く」ダイアログを 新たに表示させ、そこで選択したファイルの場所を 返すようにしたいのですが、可能でしょうか? 可能ならばその方法も教えていただきたいです。 (プログラムにあまり詳しくないので、 やや詳しく書いていただけるとありがたいです。)

  • (VC++2010)画像をドラッグしたいのですが

    VC++初心者です。 学校の課題で、 Buttonを押して、画像ファイルを読み込みpictureBox1に表示 ↓ pictureBox1上でマウスドラッグをして、ドラッグで選択された長方形の部分の画像をコピーし、pictureBox2に表示 というプログラミングを書きたいのですが、ドラッグのところで詰まってしまっています。 ドラッグを開始した座標などをどう上手く使って行けばいいのかがわかりません… 初心者すぎて質問の仕方もイマイチわからないのですがどなたか教えて頂けると幸いです。

  • ファイル参照ダイアログでの複数ファイル選択

    ファイル参照ダイアログで複数のファイルを選択でき、開くを押したら選択されているファイルをすべて参照出来るようにしたいのですが、うまくいきません。 使用できる言語はASP.NET、JavaScript、VbScript、HTMLです。 どなたかよろしくお願いします。

専門家に質問してみよう