タイトル : 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を代入するようにするとか。 |