初めて質問させていただきます。
PictureBoxへの描画を反映させるためにRefreshを行っているのですが、結果が反映されません。
画面を切り替えると描画されているのでRefreshできていないと考えたのですが、Refreshを行う際に特に何かをする必要があるのでしょうか?
環境はVisualBasic.Netで開発しています。
Formをロードするときに以下の処理を行っております。
bitmapfile = New Bitmap(PictureBox1.Width,PictureBox1.Height)
PictureBox1.Image = bitmapfile
Graphics1 = Graphics.FromImage(PictureBox1.Image)
描画する際に以下の処理を行っています。
PictureBox1.Image = bitmapfile
Graphics1 = Graphics.FromImage(PictureBox1.Image)
'ここで描画処理
'Graphics1.DrawLineやGraphics1.DrawRectangle等を行っています
Graphics1.Dispose()
PictureBox1.Refresh()
まず、Graphics1.Dispose() を外して実行してみましょう。(^-^*)
Graphics1.Dispose()を外して実行しましたが、見た目では何も変化がおきませんでした。
えーっと、私の環境はVB6.0なのでなんともいえませんが、
私が思うに、pictureBoxのAutoredrawがTrueになっていないとかいうミスだったりはしませんか?
そうしないと、いくら正しくプログラミングされてても反映されないと思うので・・・・・
VB.NETではAutoRedrawプロバティがないようです。(MSDNに書いてありました)
CreateGraphicsを利用する方法も試したのですが、これでも結果は同じでした。
描画するのにPaintイベントを利用する方法もあるみたいですが、これまでやってきた方法と何か変わるのでしょうか?
プログラム的にイベントが使えないと思ったので、使ってないのですが……
Refresh を Invalidate にしてみては?
今まで返事を書いてくださった皆様、ありがとうございました。
結論として、今回のところとは関係のないところでプログラムにミスがありました。
お騒がせして本当に申し訳ございませんでした。
ツイート | ![]() |