none
pictureBox への アイコン表示における Windows 7 と XP の違いについて RRS feed

  • 質問

  • みなさま、こんばんわ!
    いつもお世話になります。

    早速ですが、質問をさせて頂きます。

    Windows Systemにある Rotate1.ico ~ Rotate1.icoを順次
    pictureBox に表示し、処理中の待ちの間クルクルまわる画面
    を表示しました。

    その際、pictureBoxへの表示を次のように記述しました。

     pictureBox1.Image = Image.FromFile(@"c:\sample.ico")
    (簡素化するため、上記1行で試し、問題発生を確認しました)

    この方法で、Windows7 では考えた通りに動くのですが、
    Windows XP の場合には、エラーダイアログが表示されます。

    その内容は、次の通りです。

    アプリケーションのコンポーネントでハンドルされていない
    例外が発生しました。[続行]をクリックすると・・・・・・
    ・・・・・・・直ちに終了します。
    c:\sample.ico

    ・・・・・・・・
    ・・・・・・・・
    System.IO.FileNotFoundException: c:\sample.ico
    ・・・・・・・・
    ・・・・・・・・

    どうも、該当ファイルが見つからないようなのですが、間違い
    なくファイルは存在しています。

    何か、OSに依存する記述が必要なのか、問題が生じる理由が
    分かりません。
    原因を探るヒントでも教えて頂ければと思い、投稿させて頂き
    ました。

    どうぞ、よろしくお願い致します。

    2012年4月5日 14:23

回答

  • まず最初にPictureBoxとは関係がありません。エラーになっているのは Image.FromFile() の方で、その意味で質問タイトルは間違っています。

    原因は、実際にファイルが存在しないだけだと思います。全角・半角、拡張子が2重についてるなどではありませんか? ですのでファイルが本当に存在するのか確認してください。

    var file = @"c:\sample.ico";
    Console.WriteLine("exists?: " + File.Exists(file));
    foreach(var path in Directory.GetFiles(Path.GetDirectoryName(file), "*" + Path.GetExtension(file)))
      Console.WriteLine(path);

    とか。

    2012年4月5日 22:51

すべての返信

  • まず最初にPictureBoxとは関係がありません。エラーになっているのは Image.FromFile() の方で、その意味で質問タイトルは間違っています。

    原因は、実際にファイルが存在しないだけだと思います。全角・半角、拡張子が2重についてるなどではありませんか? ですのでファイルが本当に存在するのか確認してください。

    var file = @"c:\sample.ico";
    Console.WriteLine("exists?: " + File.Exists(file));
    foreach(var path in Directory.GetFiles(Path.GetDirectoryName(file), "*" + Path.GetExtension(file)))
      Console.WriteLine(path);

    とか。

    2012年4月5日 22:51
  • 佐祐理 さん、有難うございます。
    また、返信が送れて申し訳ありません。

    OSやPictureBoxとは関係ない事に付いて、了解しました。

    やはり、System.IO.FileNotFoundException: c:\sample.ico と
    ある通り、ファイルが見つからないのですよネ

    同じソースを異なる環境で実行しており、目的のファイルもセット
    しており、存在する筈なのですが・・・

    もっとも、実行時にこのエラーの直前に、他の問題を引き起こして
    変な動きが確認されており、その辺りに引きずられている可能性も
    あるようで・・・

    OS依存や PictureBoxとは無関係とのアドバイスを頂き、もう一方の
    問題の方に集中してみます。

    旨く行ったら、ここにご報告させて頂きます。

    どうも、有難うございました。
    今後とも、どうぞよろしくお願い致します。

    2012/4/25 追記


    遅くなってしまいましたが、その後のご報告です。

    icoファイルをリソースに埋め込んでみたり、色々やってみましたが該当のWindowsXP機では
    同じ結果しか得られませんでした。
    そこで気を取り直し、別のWindowsXP機で試した所、何の問題もなく動作してしまいました。

    よくよく考えてみると、問題のWindowsXP機は時々ネットワーク接続が切れていたり、たまに
    怪しい動きをする事が確認されていたようです。
    どうも、該当機は何か問題を抱えたPCだったようで、一件落着しました。

    色々とお騒がせしてしまい、申し訳ありませんでした。
    今後とも、どうぞ宜しくお願い致します。

    2012年4月9日 0:15