2017-12-28 63 views
-2

イメージをリソースファイルに読み込もうとしていますが、リソースファイル内にイメージがあるにもかかわらずnullと表示されています。 resxファイルでnullを返すリソース

は、彼らは私がなぜデバッガをステップとしてnull lwhenを見せている画像のプロパティここで

Image selectedImage = null; 
Image emptyImage = null; 

ResourceManager rm = new ResourceManager("SchedurlesImages.resx", Assembly.GetExecutingAssembly()); 


Bitmap selectedImage = (Bitmap)rm.GetObject("selected"); 
Bitmap emptyImage = (Bitmap)rm.GetObject("empty"); 

を宣言しますか? enter image description here

+0

これはCではありません。 – alk

+0

@alk私は埋め込みリソースを選択しているので、タグは依存しています。 – rogue39nin

+2

ResourceManagerコンストラクタに間違った引数を渡しています。このようにしないでください。プロジェクト>プロパティ>リソースを使用してください。 F1を押すと詳細が表示されます。 –

答えて

0

あなたは2つの変数やフィールド宣言した:

Image selectedImage = null; 
Image emptyImage = null; 

をしかし、あなたは新しいローカル変数(変数の前にタイプ名を書くことは、それ新しい変数宣言にする)にリソースを割り当てる:

Bitmap selectedImage = (Bitmap)rm.GetObject("selected"); 
Bitmap emptyImage = (Bitmap)rm.GetObject("empty"); 

以前

selectedImage = (Image)rm.GetObject("selected"); 
emptyImage = (Image)rm.GetObject("empty"); 
宣言された変数やフィールドを使用するタイプの名前を削除します

画像は現在のプロジェクトのリソースである場合は、

selectedImage = Properties.Resources.selected; 
emptyImage = Properties.Resources.empty; 

のVisual Studioでそれらにアクセスすることができますハードコードと強く型付けされたリソースとの分離コードファイルを作成します。

+0

それは同じプロジェクトにありますが、そのプロジェクトは解決策の中にあります。それは、それがまだ動作していないことにアクセスしようとしたときのように、底の方法を使用できないことを意味します。 – rogue39nin

+0

プロジェクトは常に解決策です。一番下のメソッドがコンパイルされた場合、それは動作します。 2つの異なる変数のセットが2つあるため、コードは機能しません。 (4つの変数があります)。 –

関連する問題