• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# フォームサイズ変更で消えない描画の方法)

C#でフォームサイズ変更で消えない描画の方法

このQ&Aのポイント
  • C#の初心者の方が、ボタンをクリックして描画した図形がフォームサイズを変更すると消えてしまう問題について解決方法を教えてください。
  • 具体的な問題として、ボタンをクリックするとピクチャーボックスに円を描くプログラムを作成しましたが、ウィンドウサイズを小さくして再び元のサイズに戻すと円が消えたままになります。
  • さらに、円を描くためにピクチャーボックスのペイントイベントを使用した場合、フォームのサイズを変更しても円が自動的に再描画されますが、プログラムが起動すると円が最初から描画されてしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

PictureBoxのImageに書き込んでやれば保持されるんじゃないですか。 前提として、フォームのLoadかShownイベントに以下の行を仕込んでおきます。 pictureBox1.Image = new Bitmap(100, 100); // pictureBox1のwidth,heightにしといた方がいいかも で、肝心のコードはbutton1_Clickの方で Graphis g = FromImage(pictureBox1.Image); g.DrawEclipse(...); pictureBox1.Invalidate(); としとけばOKなはず。

参考URL:
http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html
noname#154688
質問者

お礼

前略 ・さっそく回答ありがとうございます。  教示にしたがい、下記のコードで実行したところ、ボタンクリックで作成した円がフォームサイズを小さくして円を隠した後 再びフォームを大きくしても自動的に円が再描画されるようになりました。 private void button1_Click(object sender, EventArgs e) { pictureBox1.Image = new Bitmap(pictureBox1.Width,pictureBox1.Height); Graphics g = Graphics.FromImage(pictureBox1.Image); g.DrawEllipse(Pens.Black,0,0,100,100); }  昨日から悩んでいた問題が解決しました。ありがとうございます。 以上

すると、全ての回答が全文表示されます。

関連するQ&A