C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: マウスポインターをオリジナルにする
(過去ログ 122 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■73074
/ inTopicNo.1)
マウスポインターをオリジナルにする
▼
■
□投稿者/ よしむら
(41回)-(2014/08/16(Sat) 11:11:24)
分類:[.NET 全般]
c#でプログラミングをしています。visual studio2010を使っています。
こちらのサイト
http://koseics.blog66.fc2.com/blog-entry-10.html
を参考に、オリジナルのマウスポインターのアプリケーションをつくりたいのですが、
Cursor myCursor = new Cursor(asm.GetManifestResourceStream(asm.GetName().Name + ".カーソル名.cur"));
の部分に
NullReferenceExceptionはハンドルされませんでした。
というエラーが出てしまいます。
追加場所は、コンストラクターとメインフォームのロードイベントに書いてみましたが結果は同じでした。
ソリューションには正しく追加されているので、なぜNullになってしまうのかわかりません。
わかる方よろしくお願いします。
引用返信
編集キー/
編集
■73075
/ inTopicNo.2)
Re[1]: マウスポインターをオリジナルにする
▲
▼
■
□投稿者/ Jitta
(151回)-(2014/08/16(Sat) 11:37:11)
■
No73074
(よしむら さん) に返信
41回目の投稿ならば、わかっているとは思いますが。。。
> こちらのサイト
>
http://koseics.blog66.fc2.com/blog-entry-10.html
> を参考に、オリジナルのマウスポインターのアプリケーションをつくりたいのですが、
>
> Cursor myCursor = new Cursor(asm.GetManifestResourceStream(asm.GetName().Name + ".カーソル名.cur"));
>
> の部分に
>
> NullReferenceExceptionはハンドルされませんでした。
>
> というエラーが出てしまいます。
>
> 追加場所は、コンストラクターとメインフォームのロードイベントに書いてみましたが結果は同じでした。
まずは、どの変数が null なのか、調べましょう。
その他のことは、その後です。
引用返信
編集キー/
編集
■73087
/ inTopicNo.3)
Re[2]: マウスポインターをオリジナルにする
▲
▼
■
□投稿者/ よしむら
(43回)-(2014/08/17(Sun) 19:46:39)
■
No73075
(Jitta さん) に返信
myCursorがNullになっていました。
リソースに追加したカーソル名.curをうまく読めていないということがわかりました。
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
Cursor myCursor = new Cursor(asm.GetManifestResourceStream(asm.GetName().Name + ".カーソル名.cur"));
this.Cursor = myCursor;
このように書いているのですが、リソース内のカーソル名.curを読み込めないのはなぜでしょうか?
引用返信
編集キー/
編集
■73088
/ inTopicNo.4)
Re[3]: マウスポインターをオリジナルにする
▲
▼
■
□投稿者/ tinq
(16回)-(2014/08/17(Sun) 20:09:44)
■
No73087
(よしむら さん) に返信
本当にmyCursorがnullになったのでしょうか。new Cursorがnullを返すことはないと思いますが。
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
string name = asm.GetName().Name + ".カーソル名.cur";
Stream s = asm.GetManifestResourceStream(name);
Cursor myCursor = new Cursor(s);
this.Cursor = myCursor;
のように分けてみてください。
たぶん、GetManifestResourceStreamがnullを返してCursorのコンストラクタが例外を吐いているのではないでしょうか
http://msdn.microsoft.com/ja-jp/library/xc4235zt
(v=vs.110).aspx
nullを返す場合があるようなので、それをもとに調べてみるといいかと思います。
引用返信
編集キー/
編集
■73143
/ inTopicNo.5)
Re[3]: マウスポインターをオリジナルにする
▲
▼
■
□投稿者/ Jitta
(152回)-(2014/08/21(Thu) 22:37:21)
■
No73087
(よしむら さん) に返信
基本的にtinqさんが書かれているとおりです。
> myCursorがNullになっていました。
提示されているコードでは、myCursor が Null だからといって NullReferenceException は発生しません。
ですから、「まずは、どの変数が null なのか、調べましょう」。
………「変数」と書いたのがまずいか?「何が null なのか、調べましょう」。
「asm.GetManifestResourceStream」が null を返しているはずです。
つまり、「new Cursor(Null)」というコードになっており、それがために NullReferenceException が発生しているはずです。
で、なぜ、「asm.GetManifesyResourceStream」が null を返すのか。
GetManifestResourceNames メソッドでリソースの一覧がとれるようなので、確認してはどうでしょうか。
あと、こんな情報もありますけど。
http://dobon.net/vb/dotnet/programing/vsresource.html
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-