C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 21 を表示中)
■8775 / )  Re[3]: マウスイベントを利用したグラフィク表示について
□投稿者/ 魔界の仮面弁士 (462回)-(2007/10/09(Tue) 23:03:58)
2007/10/09(Tue) 23:04:35 編集(投稿者)

No8772 (tikara さん) に返信
> それでBItmapオブジェクトを作成してimageプロパティからgraphicオブジェクトを作成するようにしました。
それで良いと思いますよ。ただ、正しくは
  BItmap → Bitmap
  image → Image
  graphic → Graphics
ですよね。(C# を使っているのですから、大文字/小文字の違いにも御注意を)


> 描画した画像をpictureBox1.image=null;のコードで記述したボタンを押すと、消去はできますが、
> 消した後に再度マウスでなぞるとエラーがでるようになってしまいました。
『エラー』というのは、ArgumentNullException 「値を Null にすることはできません。」というヤツですか?
だとしたら、それは当然の結果です。

Graphics は「描画ツール(ペン/ブラシ/塗りつぶし色など)」を意味するクラスです。
Bitmap という「キャンバス/紙」に描画するならばともかく、
null すなわち「何もないところ」に描画させようというのは、無理がありますよね。


> これはC#の仕様なのでしょうか?
Image に null を代入したのですから、その後の
> Graphics g = Graphics.FromImage(pictureBox1.Image);
の処理というのは、
 Graphics g = Graphics.FromImage(null);
の意味になりますよね。ここに null を指定すると「例外」が発生することは、ヘルプにも明記されています。
http://msdn2.microsoft.com/ja-jp/library/system.drawing.graphics.fromimage%28VS.80%29.aspx


> これでわかっていただけましたか?よろしくお願いいたします。
「null」を代入するのではなく、「何も描画していない Bitmap」を割り当ててみては如何でしょう。
返信 編集キー/


管理者用

- Child Tree -