Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
VB PictureBox と ShapeContainer について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30534#CommentId84154
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
VB+VC# Beginner
 (社会人)
投稿日時
2020/9/6 19:51:34
PictureBox と ShapeContainer についてお尋ねします。
Visual Basic で、アナログ時計を作る方法について、調べているうちに、
某書籍の抜粋のページを見つけ、その書籍を購入しました。
その書籍の説明では、
1.PictureBox をフォームに配置する。
2.Timer1.Tick のイベントで、時計盤(外周円、目盛、数字)を描画し、
針(秒針・分針・時針)を描画する。
という流れでコードを書かれていました。
私はフォームの背景に写真を配置したので、
g.Clear(Me.BackColor)
の箇所を、
Pic_My_Analog_Clock.Refresh()
と書き換えたら、どうにか時計は動きました。
というより、「1秒ごとに時計を描画し、消してから再度描画する。」
という感じで、画面が点滅しています。
針を回転させる方法はないかとさらに調べていくと、
VisualBasic.PowerPacks をインストールし、LineShape の (x1,y1),(x2,y2)
の座標を計算すると、針は回転することがわかりました。
((x2,y2)を中心とするので (x1,y1) だけ変えればよい)
その方法で、針が回転することを確かめてから、
前述の PictureBox に時計盤(外周円、目盛、数字)を描画して、針を3本
LineShape で描画しましたが、PictureBox を一番背面にしても、フォームの
デザイン中に針は消え、「開始」を押しても、時計盤しか見えません。
(前述の「xxx.Refresh()」は今回は使っていません。
時計盤の記述はフォームの load にしました。)
仕方がないので、PictureBox を消して、ShapeContainer に針、円、目盛を描画しました。
おそらく、私の知識不足で、PictureBox と ShapeContainer を同時に使うことが
できなかったと考えています。
アナログ時計のように、同心円の時計盤と針を描画する場合、
PictureBox と ShapeContainer を同時に重ねて利用することは可能ですか?
宜しくお願いします。