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 は処理されませんでした

初めてそれをしなかったことを申し訳ありません。

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

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.");
}
4

4 に答える 4

2

推測ですが、テキスト ボックスが文字通り表示される場合:

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

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

于 2012-01-12T02:28:56.520 に答える
1

どちらの行も問題なく動作するはずなので、明らかに、コードが行っていることは、あなたが思っていることとは異なります。

テキスト ボックスを使用して変数の値を調べているようですね。あなた自身に感謝し、学びましょう:

  1. Diagnostics.Trace.WriteLine()

  2. デバッガの使い方。

(最も重要なのはデバッガです。) これで、コードの何が問題なのかを突き止めることができます。あなたが私たちに見せてくれたものから、それで何か悪いことを見つけることは不可能だからです.

--そうそう、次にあなたがここに「うまくいかない」と言って何かを投稿するときは、どのようにうまくいかないかを正確に教えてください。それは黙って何もしませんか?例外をスローしますか?期待していたものとは異なる画像が読み込まれますか? クラッシュして燃えますか?それは少し不可欠です。

于 2012-01-12T02:16:21.673 に答える
0

パスを変更し、

string imgPath=@"c:\Users\Admin\Desktop\apps\pic1.png";

編集: パスに無効な文字が含まれています。

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);
于 2012-01-12T02:21:27.997 に答える
0

あなたのスラッシュは間違っています。Verbatim 文字列にしてみてください。

@"C:\Users\Admin\Desktop\apps\pic1.png"

于 2012-01-12T02:23:22.603 に答える