DOBON.NET DOBON.NETプログラミング掲示板過去ログ

PictureBoxのImageについて

分類:[全般]

PictureBoxに画像がロードされてないこと、またグラフィック図形が画かれてないこと
をどのようにひょうげんしたらよいのでしょうか?
例えば If (画像がロードされてなければ) Then のようにつかいたいのですが。
■No143に返信(Tomatoさんの記事)
> PictureBoxに画像がロードされてないこと、またグラフィック図形が画かれてないこと
> をどのようにひょうげんしたらよいのでしょうか?
> 例えば If (画像がロードされてなければ) Then のようにつかいたいのですが。
>
>

画像の方は、imageプロパティで判断できるはずですが、
図形の描画に関してはどうなんだろう?
って考えるより、
画像をロードしたり描画した際に、
フラグを立ててやればいいのではないでしょうか?
  • 題名: Re[1]: PictureBoxのImageについて
  • 著者: よねKEN
  • 日時: 2003/07/23 13:04:49
  • ID: 203
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> PictureBoxに画像がロードされてないこと、またグラフィック図形が画かれてないこと
> をどのようにひょうげんしたらよいのでしょうか?
> 例えば If (画像がロードされてなければ) Then のようにつかいたいのですが。

とろんさんの回答と大部分かぶりますが、
PictureBoxに画像をロードするとき、

PictureBox1.Image = New Bitmap(ファイルのパス)

などのようにしますが、
このとき、ImageプロパティにはこのBitmapオブジェクトへの参照が設定されています。
参照が設定されていないときはNothingになっています。
よって、下記のように判断できます。

If PictureBox1.Image Is Nothing Then
' 画像が設定されていないときの処理
End If

また、グラフィック図形が描かれているかどうか?は、
どのように描画したか?によります。
空のBitmapオブジェクトを用意し、そのBitmapオブジェクトを
PictureBoxのImageプロパティに設定するような形であれば、
上記の方法と同じです。

そうではなく、PictureBoxのPaintイベントなどでe.Graphics.〜で
描画した場合は、判断基準がありませんので、自前で用意したPublicまたはPrivateな
フラグ用の変数を用意し、初期値をFalseに設定、描画したときにTrueに変更するように
するなどして、この変数の値で判断するとよいと思います。

DOBON.NET | プログラミング道 | プログラミング掲示板