- - PR -
ユーザーコントロール(クラス)越しにDrawEllipseで円を描くには・・・
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-12-03 09:28
いつも大変お世話になっております。
VB2005で下記プログラムにおきまして 'Aこれは成功する の箇所のように直接UserControl1.vb内のボタンクリックイベントでは円が描かれるのに、クラスのインスタンス生成元のフォームからメソッドで呼び出して描こうとしても何も描かれません。。 どのようにすればユーザーコントロール(クラス)越しにDrawEllipseで円を描くことができますでしょうか。 何卒ご教授賜りますようお願い申し上げます。
| ||||
|
投稿日時: 2008-12-03 10:46
過去のトピックが参考になりますよ。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32681&forum=7 _________________ Nakamura Blog | ||||
|
投稿日時: 2008-12-03 14:50
ご教授ありがとうございます。
VB6では外部から定期的に受信する座標データ(ただの文字列)をPictureBoxに描いて折れ線グラフを書いていくアプリを作っていましたが、上に別のフォームを一回乗せても描画したもが消えることはありませんでした。。 VB2005で同じことをやろうとすると、これまで受信したデータを全て保存しておいて、
のようにPaintイベントの度に最初から全て描画しなおさないといけないのでしょうか。悲しいです。。 | ||||
|
投稿日時: 2008-12-03 15:31
・必要な大きさのビットマップを作成 ・PictureBox.Image に↑を設定 ・Graphics.FromImage (PictureBox.Image) で Graphics オブジェクトを取得 ・↑の Graphics に描画 とすればいいです。 PictureBox は「画像を表示するためのコントロール」であって、「絵を描画する場所」ではありません。 自前で描画するなら、PictureBox でも Panel でも同じことになってしまいます。 | ||||
|
投稿日時: 2008-12-03 16:33
ご教授ありがとうございます。
なるほど、そうだったのですね! ご教示いただいた方法でトライしてみたいと思います。 ちなみに >VB6では外部から定期的に受信する座標データ(ただの文字列)をPictureBoxに描いて折れ線グラフを・・・ のようなものを描く場所として最適な場所はどこになりますでしょうか。。 | ||||
|
投稿日時: 2008-12-03 17:31
「描く場所」は Bitmap を元に作成した Graphics です。 Bitmap を表示する方法はさまざまありますが、手軽に、ということなら PictureBox でいいと思います。 | ||||
|
投稿日時: 2008-12-03 19:03
なるほどです。
教えていただいたとおりで再描画もうまくいきました! 貴重なお時間をいただき、本当にありがとうございました。 解決です! |
1