- 締切済み
PictureBoxの描画を消さない方法
VisualBasic2005において、プログラミングを制作しています。 計測器にて計測した値を読み込み、くり返し処理を用いてPictureBoxに描画したいのですが、前のデータを消さずに次のデータをプロットしていく方法がわかりません。 前のデータを消さずに塗り足していく方法はないでしょうか? また、この値はコンボボックスから読み込んでいるのですが、くり返し処理によってコンボボックスの値を読み取る場合、終了値はどのように設定すればいいのでしょう? 初期値はいいとして、終了値は計測回数によって変わるため明確な値はないのですが、「値がなくなったら終わり」ということを指定するにはどうコードを組めばいいのでしょうか? ご指導よろしくお願いいたします。 全体的な流れを記しておきます。 計測→コンボボックスに値を格納→ボタンによってコンボボックスの値を(全て)読み込み、PictureBoxに全て描画 コンボボックスの値の読み込み、描画にくり返し処理を用いています。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- MARU4812
- ベストアンサー率43% (196/452)
基本的な考え方は「前のデータも含めて再描画する」です。 描画が消えるのは、コントロールの再描画が行われる為です。 ウィンドウを動かした時、他のウィンドウに隠れていた部分が 前面に出たとき、最大化したときetc.. つねに最新の状態(プロパティ値)をもとに最新の位置に描画する 必要がありますよね? 画面の内容に変化がない為、我々が意識して無いだけで、画面は 常に更新され続けているのです。 コントロールの基本的な描画はコントロール自身の描画処理が 用意されています。では、プログラムでプロットした点は? 自分でプログラムして常に更新されるようにする必要があります。 (もしくはBitmap等の描画オブジェクト(描画されている内容を 描画する事を目的としたクラス)を利用して描画させるか) 私は以下のサイトのサンプルコードを全て勉強する事で理解しました。 http://dobon.net/vb/dotnet/graphics/index.html 特に重要だと感じたのは http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html です。
- KAZUMI2003
- ベストアンサー率37% (77/208)
描画系は、詳しい方の登場を待つとして。 comboboxのItemsは、コレクションのはずですから、countプロパティが使えるんじゃないですか? 或いは、foreachを使うとか。
お礼
回答ありがとうございます! なるほど、countプロパティですね… 調べたところ、countで終了値を指定できるのですね、勉強になりました。 描画はやはり今のところうまくはいかないですね…
お礼
ありがとうございます。 やはり未定数をプロットするのは難しいのですかね… 遠い道のりなようですが、頑張ってみます。