• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC# 追加フォーム生成時、フォームに描画できない)

VC# 追加フォーム生成時、フォームに描画できない

このQ&Aのポイント
  • メインのWindowsフォームからボタンクリックで 追加したサブWindowsフォーム上のピクチャーボックス上に何も操作なしでに描画したいができない。CreateGraphics()でオブジェクトを生成して描画しています。どのようにしたらよいのかおしえてください。
  • サブフォームにボタンをもうけ このメソッドの中に描画コマンドを書き、ボタンを操作すると描画できます。下記は円を描こうとしていますが、shapeコンポーネントでは描けな複雑な描画をしたいと思っています。
  • 以下の動作となるソースコードを記載します。 (1)起動するとメインフォームForm1のpictureBox1に赤い円が描かれる (2)ボタンbutton1をクリックするとForm2が表示される。  Form2上のラベルlabel1とlabel2の文字色は青色に変わっています。  しかし、円は何故か描かれていません (3)Form2上のボタンをクリックすると赤い円がForm2上に描かれます。 どこをどのように直せば追加のサブフォームForm2が表示された時に Form2上のpictureBox1に円が描がかれているのでしょうか。以上、よろしくお願いします

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

  • ベストアンサー
回答No.1

私まではまりかけました(笑) Paintイベントから提供されるGraphicsを使用しましょう。 private void pictureBox1_Paint(object sender, PaintEventArgs e) { label1.ForeColor = Color.Blue; //Graphics g1 = pictureBox1.CreateGraphics(); Graphics g1 = e.Graphics; g1.DrawEllipse(Pens.Blue, 0, 0, 50, 50); } http://www.atmarkit.co.jp/fdotnet/dotnettips/458picboxdraw/picboxdraw.html

noname#154688
質問者

お礼

前略 ・ ご教授のように、Paintイベントから提供されるGraphicsを使用したらできました。 本件で丸2日悩んでいました。本当にありがとうございます。 private void pictureBox1_Paint(object sender, PaintEventArgs e){ label1.ForeColor = Color.Blue; Graphics g1 = e.Graphics; // Graphics g1 = pictureBox1.CreateGraphics(); g1.DrawEllipse(Pens.Blue, 0, 0, 50, 50); label2.ForeColor = Color.Blue; } 以上

関連するQ&A