• 締切済み

Pictureboxについて

VB.netで開発を行っていますが、Pictureboxの描画処理で困っています。 プログラム、処理は以下のような感じです。 プログラム ・1つのPictureboxに対して、8台の機械の状態をそれぞれグラフ描画して、さらに全ての機械の実績値の合計を1つのグラフに  描画する。(計9つのグラフを描画します。) ・画面で任意の機械の絵を選択、スクロールで移動できます。(わかりづらいですが、ライン構想のようなものです。) ・スレッドで10秒間隔で毎回更新されます。(毎回描画しています。) 以上のような描画処理を行っておりますが、納品するパソコンがタッチパネルPC(windows xp embedded)なので、 スペックが低く、機械の絵を動かすと、描画が遅いと客から指摘を受けました。 機械の絵を動かした時、グラフを含め全ての描画を行っていることが原因だと思いますが、前回描画したグラフの内容を消去しないまま、 現在、動かしている機械の絵のみ描画するという方法はPictureboxで可能でしょうか。 (1つのPictureboxの特定の部分のみ描画したい。) また、何か他によい方法があれば教えて頂けないでしょうか。

みんなの回答

  • kaoaru
  • ベストアンサー率33% (42/127)
回答No.4

>また、何か他によい方法があれば教えて頂けないでしょうか。 ちょっと「キツメ」に言ったのは、「業務上の守秘義務」というものがあるワケでしょう? 内容的にかなり具体性があるので、見る人がみたらわかりますよ、それ。 そういう意味で問題なワケです。 さぁて、BitBltと一言で片付けていますが、工夫は要りますよ! 「元絵」となるものはVBのコードで書いておいてもいいわけです。それは表示しないでおいて隠しておくのです。 そして、その「元絵」をターゲットとなるウィンドウにBitBltで転送するワケです。 それであたかもそこでやっているように見えます。 これ、完璧に「制御系屋さん(そんな分野あったか^^;)」の発想ですよ! 私はもともとそっちのほうなんで、そういう発想をしましたが・・・。 そういう発想を自力でさがして解決するのが「プロの仕事」だと思いますよ。 ましてや「クライアント」さんの情報を抽象的であったにせよ、公開してしまったのはマズいですよ!

  • kaoaru
  • ベストアンサー率33% (42/127)
回答No.3

>また、何か他によい方法があれば教えて頂けないでしょうか。 お仕事でしょう? あなたもプロなんですから、こんなところで質問しちゃいけないですよ! それを解決するのが仕事のウチなのですから・・・。 私はVB6ですが、ドットネットプログラマでも「WindowsAPI」というのはご存知でしょう? 画像移動の際に「VBのコード」で処理しているからいけないのです。 「BitBlt」というAPIで処理すれば解決できるハズですよ! でも、ドットネットの場合、Pictureクラスにそういうメンバいないのかな?不思議だな?だったらドットネット使う意味ないんだけどな! VB6プログラマにこんなことを言われてはずかしいと思いなさいよ!あなたはプロなんだからね!

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

> 機械の絵を動かした時、グラフを含め全ての描画を行っていることが原因だと思いますが 質問の回答ではないけど、「思います」ってどういうこと?処理ブロックごとに処理時間を計測してボトルネックを明確にするなんてデバッグ作業の基礎でしょう?その程度の調査は質問前に済ませておくべきです。

回答No.1

ぜんぜん,状況がわからない(想像できない)けれど, もし,PictureboxのGraphicsオブジェクトを取得して, 直接描画しているなら, 一度Bitmapに描画した後にPictureboxに入れればいいんじゃないかと.

関連するQ&A