• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2010で、2つめのフォームを表示させると、フォームを閉じるまで1)

VB2010のフォームを表示させる方法とグラフカーソルの描画方法

このQ&Aのポイント
  • VB2010で2つめのフォームを表示させる方法と、フォームを閉じるまで1つめのフォームの操作ができない問題について解決方法を知りたいです。
  • VB2010で2つめのフォームを表示させると、フォームを閉じるまで1つめのフォームの操作ができない問題が発生しています。解決方法を教えてください。
  • VB2010で2つめのフォームを表示させると、1つめのフォームの操作ができなくなってしまいます。問題の解決策を教えてください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

おかしいですね 当方は VB2008/2005ですが実現できていますよ 追加したPictureBoxの親の指示が違っていませんか? 通常ツールボックスからフォーム上にピクチャーボックスをドラッグアンドドロップした場合は 親がフォームになります つまり ピクチャーボックス同士は兄弟という関係です この場合重ね合わせても 兄弟を透過することは出来ませんので親(Form)の背景を描画してしまいます フォームを作成して BackCOlor適当にColor.Controlから Color.Redや Color.Greenなどに変更しておきます この状態で PictureBoxを追加してBorderStyleをFixedSingleなどにしてからBackColorを Color.Transparentに変更してみてください デザイナ画面でPictureBoxの枠線だけの描画になると思います ここまで出来れば先の回答の方法でうまくいくと思うのですが ・・・ 添付の画像は フォームにPictureBoxを2個追加してBackColorを変更した状態ですよ 緑色のPictureBoxの中の 赤色が2番目のPictureBoxで BackColorをTransparentに設定したものです

ddtqp
質問者

お礼

ありがとうございます。なんとかできました! チャートにグラフを描いて、 折れ線グラフ上を移動するカーソルをピクチャーボックスに描くことにしました。 'カーソルセット Dim ActiveLine As Color = Color.Red Me.PictureBox1.Parent = Me.Chart1 '親設定 Me.PictureBox1.BackColor = Color.Transparent 'バックカラー透明 Me.PictureBox1.BringToFront() '最前面に配置 Dim CursorPen As New Pen(ActiveLine, 1) Me.PictureBox1.Image = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height) Dim g = Graphics.FromImage(Me.PictureBox1.Image) g.DrawEllipse(CursorPen, 5, 5, 10, 10) g.DrawLine(CursorPen, 0, 10, 20, 10) g.DrawLine(CursorPen, 10, 0, 10, 20)

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

やるならば PictureBoxを2個使ったほうがいいように思いますよ 1つ目にグラフを描画します 2つ目にはカーソルを描画 PictureBox2.BackColor = TransParent PictureBox2.Parent = PictureBox1 を Form_Loadイベントなどで設定します Paintイベントで 質問のカーソル描く 部分を描画してみましょう マウスの動きに合わせて PictureBox2のLocationを変更すればカーソルも動くと思いますよ

ddtqp
質問者

お礼

回答ありがとうございます。 ピクチャーボックス、透明にできないような感じです。

関連するQ&A