tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 描画できない理由は何でしょうか
投稿日: 2014/10/22(Wed) 17:24
投稿者Hongliang
PictureBoxは、Imageプロパティがセットされると、「次の描画タイミングでウィンドウに描画するぞ」という状態になります。
MsgBox("B")が無い状態であれば、以降のコードも隙間無く実行されて、End Sub後に描画タイミングと言うことになるのですが、
MsgBoxを表示するとこの描画タイミングが発生してしまい、DrawStringなどが呼び出される前の何も描かれていないBitmapをウィンドウに描画することになってしまいます。

明示的に「次の描画タイミングでウィンドウに描画するぞ」という状態にするには、該当コントロールのInvalidateメソッドを呼び出します。
あるいは、そもそもPictureBox1.Imageにいきなり代入するのでは無く、まずDim bmp As New Bitmap(100, 100)などとしてBitmapをローカル変数に取り、Graphics.FromImageでGraphicsを取得、でDrawなどを一通り済ませた後、最後にPictureBox1.Imageにこのbmpを代入するようにするとか。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。