だから私はWindowsフォームDLLを持っています。ComponentResourceManager を作成し、そのフォームの resx に保存されている画像リソースにアクセスする MainForm クラスがあります。そのクラスを直接インスタンス化すると、すべてがうまくいきます。
新しいクラスを同じ名前空間に追加し (実際には MainForm クラスと同じ .cs ファイルに追加しただけです)、それらの画像リソースに同じ方法でアクセスしようとすると、指定されたリソースが存在しないというエラーが表示されます。文化。現在のスレッド カルチャ (および UI カルチャ) を確認すると、どちらも同じです。
別のクラスからフォームのリソースにアクセスするためにジャンプする必要がある余分なフープはありますか?
サンプルコード
namespace myNamespace
{
public class extraClass
{
public extraClass()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(myForm));
System.Drawing.Image img = ((System.Drawing.Image)(resources.GetObject("StatusButton.Image")));
MessageBox.Show(img.ToString());
}
}
public class myForm : Form
{
public myForm()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(myForm));
System.Drawing.Image img = ((System.Drawing.Image)(resources.GetObject("StatusButton.Image")));
MessageBox.Show(img.ToString());
InitializeComponent();
}
}
}
この例では、myForm のインスタンス化は問題ありませんが、extraClass はそうではなく、指定されたカルチャでリソースが見つからないというエラーで失敗し、リソースが埋め込まれていることを確認しました (そうです)。