
.NETでWinFormアプリをC#で製作中です。
Visual Studio Community 2017を使用しています。
VisualStudioのプロパティ>リソースで、画像を20個くらい読み込んでおり、条件に応じてその画像をPictureBox1のImageプロパティで表示を切り替えようとしています。
画像を管理している string 型の変数 s が "apple" だったら、リソース内の画像「apple」を表示する、といったようなことがしたいのですが、リソース内の画像を使用する方法は下記のような感じですよね。
PictureBox1.Image = Properties.Resources.画像名
しかしこれを
string s = "apple";
PictureBox1.Image = Properties.Resources.s;
というようには指定できず困っています。
s には "orange" や "banana" などの単語が入り、表示させたいリソース内の画像と名前が一致している状態です。
こういう場合どう記述すれば良いのでしょうか?
アドバイスありましたらぜひお願いします。m(_ _)m
No.2ベストアンサー
- 回答日時:
Wr5さんご回答ありがとうございます。
「まさにこれ!」と思ったのですが、新しくプロジェクトを作成してボタンを押せばPictureBox1のImageが変わる簡単なもので試してみると‥
System.Resources.MissingManifestResourceException: '指定されたカルチャまたはニュートラル カルチャに対して適切なリソースが見つかりませんでした。 "WindowsApplication1.Properties.Resources.resources" が適切に埋め込まれたか、実行時にアセンブリ "Test_ResourceImage" にリンクされたか、または必要なサテライト アセンブリが読み込まれて完全に署名されていることを確認してください。'
‥と例外が起きてしまいます。
ググってみたら「RootNameSpaceが原因」と出てはきますが、どうすればエラーが直るのか分からず引き続き困っております。orz
No.3
- 回答日時:
>「RootNameSpaceが原因」と出てはきますが、どうすればエラーが直るのか分からず引き続き困っております。
新しいプロジェクト…ってことなら、「WindowsApplication1」ではないですよね?
プロジェクト指定になっちゃいますし。
# 正確にはnamespaceか?
#1の方法でResourceManagerは取得するべきでしょうね。
>リソースが見つからないと例外が出る
自前のリソースになければ当然かと。
隣の家の冷蔵庫の中身で料理はできませんよね?
>新しいプロジェクト…ってことなら、「WindowsApplication1」ではないですよね?
そのまんま「WindowsApplication1」で指定していたことが原因でしたorz
こちらをプロジェクト名に変えたらいけました!
恥ずかしい。。
ありがとうございます‥!
No.1
- 回答日時:
ご回答ありがとうございます。
リソース名で値を取得したい訳ではなくstringで指定したいのです。
教えていただいたURL先の方法で可能なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HP上で画像をUPできるよう...
-
【EXCEL VBA】ダブルクリックで...
-
VB6での画像のサイズ変更に関して
-
背景画像の繰り返しについて
-
画像のビット数を変更する方法
-
UWSCの色判定
-
HTML内に読み込んでいない画像...
-
HTMLで画像をポップアップで表...
-
ヒストグラム類似度による画像...
-
UWSCの画像認識と条件分岐につ...
-
EXCEL VBA 複数のImageコントロ...
-
画像処理したBitmapをピクチャ...
-
日本の白地図の画像に、都道府...
-
VBAのユーザーフォームのイメー...
-
uwscについてです
-
「ご処理進めて頂きますようお...
-
UPS警告音を止めたい
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
EXCEL VBA マクロ 実行する度に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 複数のImageコントロ...
-
VBAのユーザーフォームのイメー...
-
Excel ユーザーフォームで表示...
-
【EXCEL VBA】ダブルクリックで...
-
スマホでサイトの画像を長押し→...
-
UWSC 画像判定と条件分岐について
-
HTMLで画像をポップアップで表...
-
「using Windows」でエラーが出る
-
画像のビット数を変更する方法
-
画像処理したBitmapをピクチャ...
-
UWSC「画像が無い場合」
-
背景画像の繰り返しについて
-
PowerPoint VBA で画像の鮮明度...
-
uwcs のマクロで画像認識をして...
-
gif 画像上の ボタンに リン...
-
画像が分割されて切り替わる、...
-
uwscの画像認識に失敗します。
-
C#で画像を他の画像に貼り付け...
-
vb.net 画像の透過について
-
MFCでCImageListに画像追加失敗
おすすめ情報
Tacosanさんすみません、早とちりしていました!
こちらの方法、試してみます。
試してみましたが、やはりリソース名をstringで取得できるだけのようです。。
Tacosanさんが教えてくださったURL先も、GetObjectメソッドで取得してImage型にキャストしてあげれば良かっただけでこちらも正しかったのですね。
失礼しました。。
こちらの記事も見つかりました。
リソースファイルからリソースを取得する
https://dobon.net/vb/dotnet/programing/resourcem …
ですがリソースが見つからないと例外が出るのは同様でした。
初歩的なところで躓いてそうです。
出力ウインドウはこちら。
例外がスローされました: 'System.Resources.MissingManifestResourceException' (mscorlib.dll の中)
プログラム '[79008] Test_ResourceImage.exe' はコード -1 (0xffffffff) で終了しました。