• 締切済み

PictureBoxの描画を消さない方法

VisualBasic2005において、プログラミングを制作しています。 計測器にて計測した値を読み込み、くり返し処理を用いてPictureBoxに描画したいのですが、前のデータを消さずに次のデータをプロットしていく方法がわかりません。 前のデータを消さずに塗り足していく方法はないでしょうか? また、この値はコンボボックスから読み込んでいるのですが、くり返し処理によってコンボボックスの値を読み取る場合、終了値はどのように設定すればいいのでしょう? 初期値はいいとして、終了値は計測回数によって変わるため明確な値はないのですが、「値がなくなったら終わり」ということを指定するにはどうコードを組めばいいのでしょうか? ご指導よろしくお願いいたします。 全体的な流れを記しておきます。 計測→コンボボックスに値を格納→ボタンによってコンボボックスの値を(全て)読み込み、PictureBoxに全て描画 コンボボックスの値の読み込み、描画にくり返し処理を用いています。 よろしくお願いいたします。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

基本的な考え方は「前のデータも含めて再描画する」です。 描画が消えるのは、コントロールの再描画が行われる為です。 ウィンドウを動かした時、他のウィンドウに隠れていた部分が 前面に出たとき、最大化したときetc.. つねに最新の状態(プロパティ値)をもとに最新の位置に描画する 必要がありますよね? 画面の内容に変化がない為、我々が意識して無いだけで、画面は 常に更新され続けているのです。 コントロールの基本的な描画はコントロール自身の描画処理が 用意されています。では、プログラムでプロットした点は? 自分でプログラムして常に更新されるようにする必要があります。 (もしくはBitmap等の描画オブジェクト(描画されている内容を 描画する事を目的としたクラス)を利用して描画させるか) 私は以下のサイトのサンプルコードを全て勉強する事で理解しました。 http://dobon.net/vb/dotnet/graphics/index.html 特に重要だと感じたのは http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html です。

sirokami732
質問者

お礼

ありがとうございます。 やはり未定数をプロットするのは難しいのですかね… 遠い道のりなようですが、頑張ってみます。

回答No.1

描画系は、詳しい方の登場を待つとして。 comboboxのItemsは、コレクションのはずですから、countプロパティが使えるんじゃないですか? 或いは、foreachを使うとか。

sirokami732
質問者

お礼

回答ありがとうございます! なるほど、countプロパティですね… 調べたところ、countで終了値を指定できるのですね、勉強になりました。 描画はやはり今のところうまくはいかないですね…