
http://social.msdn.microsoft.com/Forums/vstudio/ …
を参考に、
開発中のツールに
using System.Reflection;
using System.Resources;
と
private void Form1_Load(object sender, EventArgs e)
{
Assembly asm = Assembly.GetExecutingAssembly();
//ResourceManagerオブジェクトの作成(リソースResource1を追加してある)
ResourceManager rm = new ResourceManager( asm.GetName().Name + "a", asm);
// リソースよりIcon1.icoを取得する
Icon icon1 = (Icon)rm.GetObject("Icon1");
Cursor cur = new Cursor(icon1.Handle);
this.Cursor = cur;
}
を追加しました。
リソースにはjpegで書いた画像aを追加しました。
すると、
Icon icon1 = (Icon)rm.GetObject("Icon1");
の
"Icon1"の部分で、
指定されたカルチャまたはニュートラル カルチャに対して適切なリソースが見つかりませんでした。 "スーパーカーリングおひとりさまデッキブラシ.resources" が適切に埋め込まれたか、実行時にアセンブリ "スーパーカーリングおひとりさま" にリンクされたか、または必要なサテライト アセンブリが読み込まれて完全に署名されていることを確認してください。
というエラーメッセージが出ます。
そもそも、参考URLのページの質問者が、リソースにどのように画像を登録していたのかが不明です。
詳しくわかる方よろしくおねがいします。
No.2ベストアンサー
- 回答日時:
具体的な手順はすでに回答ついているのでいいとして…
>リソースにはjpegで書いた画像aを追加しました。
画像ファイルではアイコンやマウスカーソルには使用できないかと。
アイコンエディタとかフリーでありますからそういうのでアイコンファイル(カーソルファイル)を作成してください。
No.1
- 回答日時:
とりあえずそのC#プロジェクトの名前空間をWindowsFormApplication1とする。
まずリソースの追加だが、これはプロジェクトを右クリック→追加(D)→新しい項目(W)...→アセンブリ リソース ファイルで行う。そうするとResource1.resxというファイルが追加される(ファイル名を指定しなかった場合)。で、これがC#というかMicrosoft.Netの名前空間的にはWindowsFormsApplication1.Resource1という識別子になる。
で、Resource1を開くとResource1.resxというタイトルのリソース一覧窓になるのでリソースの追加(R)→新しいアイコンの追加(C)を選ぶ。そうするとIcon1.icoという埋め込みリソースファイルができる。
その上で、
~~~~~~~~
開発中のツールに
using System.Reflection;
using System.Resources;
と
private void Form1_Load(object sender, EventArgs e)
{
// ↓自分自身(EXE)のアセンブリを取得
Assembly asm = Assembly.GetExecutingAssembly();
//ResourceManagerオブジェクトの作成(リソースResource1を追加してある)
// ↓アセンブリからWindowsFormApplication1.Resource1という名前のリソースを取得
// ↓つまり、ここの第1引数は「WindowsFormApplication1.Resource1」という文字列を指定している
// ↓あなたのプログラムでは"a"になってたけどそれだと「WindowsFormApplication1a」になるわけだ
ResourceManager rm = new ResourceManager(asm.GetName().Name + ".Resource1", asm);
// リソースよりIcon1.icoを取得する
Icon icon1 = (Icon)rm.GetObject("Icon1");
Cursor cur = new Cursor(icon1.Handle);
this.Cursor = cur;
}
~~~~~~~~
とすると(EXEから見て)自分自身のアセンブリからリソースクラスを取得してアイコンを読むという動作になる。
以上が参考サイトの解説だけど・・・・EXEの中にアセンブリ リソース ファイルを入れて、その中にアイコンファイルを入れてそれを使いたいだけなら以下のようにすればいいよ。リフレクションも使う必要ない。
~~~~~~~~
private void Form1_Load(object sender, EventArgs e)
{
Cursor cur = new Cursor(Resource1.Icon1.Handle);
this.Cursor = cur;
}
~~~~~~~~
アセンブリ リソース ファイルResource1をプロジェクトに追加すると、自動的にEXEの名前空間(正確にはプロジェクトのプロパティの中にある「規定の名前空間」)内にResource1というクラスが出来上がり、そこにIcon1.icoを追加すると、プログラム中からResource1.Icon1にアクセスすることでアイコンを取得する事ができる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラーの原因は?「この関数の...
-
VB.NETで他のプロジェクトで作...
-
他の.CPPファイルに定義した関...
-
stdio.hをオープンできない…
-
C#のクラスをVB.netで使用したい!
-
static宣言の共有
-
VB6.0
-
VC++でexeファイルが作成できま...
-
Visual Stadio2008 Releaseビル...
-
sys/ipc.h や sys/shm.h
-
オープンソースソフトウェアの...
-
VB6で、非表示モジュール(?)の...
-
C#でWin32 MFC DLLが呼び出せない
-
VC++ 2010でlog4cxxビルドできない
-
同じソースコードなのにバイナ...
-
VisualBasicを保存するときにで...
-
C言語初心者の質問失礼します。
-
Access クエリ実行が急に非常に...
-
バッファとは何ですか
-
フルパスから最後のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
コンパイルするときに、ファイ...
-
エラーの原因は?「この関数の...
-
ACCESSのEXEを作るのは可能...
-
VB6で、非表示モジュール(?)の...
-
VS2010 ProductVersion 変更
-
他の.CPPファイルに定義した関...
-
ソースから参照しているOCXの一...
-
プリコンパイル?
-
Visual Studioでプロジェクトが...
-
stdio.hをオープンできない…
-
VB6.0 オブジェクトを一覧で表示
-
同じソースコードなのにバイナ...
-
srand48? drand48?
-
VB.NETでActiveX(OCXファイル)作成
-
Visual Stadio2008 Releaseビル...
-
VIsual C++6.0のソースを書くと...
-
コンパイルエラー「include フ...
-
LSI C-86 v3.30c 試食版について
-
VisualBasicを保存するときにで...
おすすめ情報