2012-01-12 7 views
1
// The following line works. 
imagebox.Image = Image.FromFile("C:/Users/Admin/Desktop/apps/pic1.png"); 

// The following line does not work. 
imagebox.Image = Image.FromFile(imgPath); 

// the test Text Box displays "C:/Users/Admin/Desktop/apps/pic1.png", exactly like in the first line 
test.Text = imgPath; 

私はピクチャの画像を変更することになっているボタンをクリックすると、私は基本的にパスに不正な文字を言って、エラーを取得し、ArgumentExceptionが初めてというImage.FromFileはパスを開きますが、同じパスを含む文字列は開きませんか?

やっていないために残念

未処理でした。

k実際のファイル名はテキストボックスに入力されます。次に、そのテキストを文字列に変換して、それを詰め込みに追加して、完全なファイルパスを作成します。

string path = "\"C:/Users/Admin/Desktop/apps/"; 
string ext1 = ".png\""; 


ID = idBox.Text; 
imgPath = path + ID + ext1; 
try 
{ 
    imagebox.Image = Image.FromFile(imgPath); 
} 
catch (System.IO.FileNotFoundException) 
{ 
    MessageBox.Show("Invalid Student or Faculty ID."); 
} 
+0

どのようなエラーメッセージが表示されますか? –

+1

タイトルに「C#」というプレフィックスを付けないでください。それがSOのためのタグを使用しています。 –

+1

エラーメッセージが表示されますか?例外?静かな失敗? –

答えて

1

両方のラインがとても明らかに、うまく動作するはずです、どのようなあなたのコードがやっていることは、あなたがそれをやっていると思うものではありません。

あなたは変数の値を調べるためにテキストボックスを使用しますか?自分に好意を行い、学ぶ:

  1. Diagnostics.Trace.WriteLine()

  2. をデバッガを使用する方法。

(最も重要なのは、デバッガです。)次に、コードに何が間違っているかを知ることができます。あなたが私たちに示したことから、何か間違ったものを見つけることは不可能です。

- いいえ、次回は、「動作しません」と言ってここに投稿します。正確にはどのように動作しないのですか。それは静かに何もしませんか?それは例外をスローしますか?あなたが予期していたイメージ以外のイメージをロードしていますか?それはクラッシュし、燃えていますか?それは必須です。

+0

ピクチャボックスのイメージを変更するはずのボタンをクリックすると、基本的にパスに不正な文字が表示されるというエラーが表示され、ArgumentExceptionは処理されませんでした。 – zck17

+0

@ user1144513:どのようにimgpath変数を設定していますか?スラッシュの代わりにバックスラッシュを使用していないと確信していますか?(そして、このようにエスケープされていませんか?) –

+0

ありがとうございます。他の人もそれを見ることができるようにあなたの質問にそれを入れてください。 –

0

変更パス、

string [email protected]"c:\Users\Admin\Desktop\apps\pic1.png"; 

EDIT:パスは、無効な文字が含まれています。

string path = @"C:\Users\Admin\Desktop\apps\"; 
string ext1 = ".png"; 
ID = idBox.Text; 
imgPath = path + ID + ext1; 
if(System.IO.File.Exists(imgPath)) 
    imagebox.Image = Image.FromFile(imgPath); 
+1

を説明してください。しかし、なぜ彼はそのエラーを受け取っているのかまだ分かりません。 –

+0

同じエラーがAVDに返されました。 – zck17

+0

@ user1144513 - 表示してください** imgPathの割り当て方法**。 – adatapost

0

スラッシュは間違った方法です。ただの推測

2

が、テキストボックスは文字通り表示されている場合: "管理者\デスクトップ\ \ Users \ユーザーAPPS \ pic1.png C":

@:つまり、それは逐語的文字列作ってみましょう

"C:/Users/Admin/Desktop/apps/pic1.png"

次にあなたが悪いですあなたのパス、引用符を持っています。あなたのコードでは、引用符を使用して文字列を定義します。ユーザからの入力を取得する場合は、引用符を必要としません。

+0

素敵な呼び出しです。 – zck17

関連する問題