• 締切済み

.NETのPictureBoxでウインドウを重ねると一部消える

PictureBoxで描写した部分にウインドウを重ねると消えてしまいます。 昔VB6で同じ質問したらAutoRedrawをTrueにといわれ解決したのですが.NETではAutoRedrawが見つかりません。 .NETではどのように解決すればいいのでしょうか?

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>描写が1秒や2秒で終わるものではないのでPaintイベントに書くとほとんど動かなくなるんです。 どのようにすればいいのでしょうか? .NETでやったことがないのでアドバイスだけ。 一般的に、ryuta_moさんのような理由で描画が遅い場合、 描画をするタイミングでは、あらかじめ作っておいた画像を貼り付けるだけにするといったテクニックを利用します。 .NETだと、あらかじめ絵を書いておいて、Paintイベントでは、再描画が必要になった範囲のみあらかじめ作成しておいた絵からDrawImageで描画するといった感じになるかと。

ryuta_mo
質問者

お礼

回答ありがとうございます。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

まえにもこのurl貼り付けたような・・・ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbcongraphicschangesinvisualbasicnet.asp >AutoRedraw プロパティ 同等の項目はありません。グラフィックスを永続化するには、Paint イベントにグラフィックス メソッドを記述します。 です。

ryuta_mo
質問者

お礼

回答ありがとうございます。 描写が1秒や2秒で終わるものではないのでPaintイベントに書くとほとんど動かなくなるんです。 どのようにすればいいのでしょうか?

関連するQ&A

  • VB 2005 PictureBox

    VB2005 のPictureBox には、VB6にはあるAutoRedraw機能はないのでしょうか?コード上にMe.Refreshとか、PictureBox.Refreshと書くしかないのでしょうか。すみませんが、どなたか教えて下さい。

  • VB2005 PictureBox1に線を描きたい

    VB2005 のPictureBox1に1秒毎に読込んできた値を折れ線グラフにして表示したいのですが、その方法を参考書を見ても良く分かりません。また、そのPictureBox1の上に別のフォームとかを表示すると、PictureBox1と重なった部分の表示が消えてしまいます。この2つを解決したいのですが。どなたか解決する方法を知っている方教えて頂きたいのですが。よろしくお願いします。

  • PictureBoxの機能

    PictureBoxの機能について、お聞きしたいです。 PictureBoxに線や丸などを描くだけというものを作りたいです。 そこで、PictureBoxから、はみ出た部分(通常はみれなくなる部分)を、文章のようにスクロールなどを使って、表示可能にしたいです。 しかし、そのような機能が見つかりません。 どなたか、良い解決方法を教えてください。

  • PictureBoxにPSetしてそれをImageへ

     VBに関して経験の浅い者です。 今、タイトル通り、ピクチャーボックスオブジェクト(名前はPict1とする)に、 Pict1.PSet(i,j),color(適当な数) と言うコードを実行していって描画し、 画像を作ったとします。  それで、Pict1にそうして描いて表示されている画像を イメージオブジェクト(名前はImageとする)に送って表示させたいのですが、 方法が分かりません。  Image.[何か]=Pict1.[ナンか]とすれば良さそうだと言う検討を立ててみたの ですが、こんな風にプロパティの色々で解決できますでしょうか?  あと、イメージオブジェクトの説明に、「「AutoRedraw」を有効にしておくと フォームやピクチャーボックスが変更された時にそれが即複写される」とあったの ですが、例えば上のPict1の描写を反映させるにはどうすればいいのでしょう?  Imageに入力する以上はAutoRedrawのターゲット(?に相当する概念)を設定する 必要があると思うのですが、、、

  • VB.NET/PictureBoxのサイズ

    お世話になります。 VB.NETにて、アプリケーションの実行時にForm上のPictureBoxのサイズをマウスのドラッグで変更できるようにしたいのですが、そういったことは可能でしょうか? Windows標準のペイントの様に、境界線をドラッグしてサイズ変更する、といったイメージです。 開発環境はVB.NET 2003 です。

  • pictureboxのラインのクリアの仕方

    VB6のpictureboxのことなのですが、質問に答えていって、pictureboxに絵が描かれるようにしました。それで、その絵をクリアするボタンを作りたいのですが、どのようにしたらいいのでしょうか?基本的な質問ですみません。

  • Pictureboxについて

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

  • vb2003.netでpicturebox に画像を表示させるにはどう

    vb2003.netでpicturebox に画像を表示させるにはどう vb2003.netでpicturebox に画像を表示させるにはどうするのですか。 picturebox に画像を表示させるにはどうするのですか。 momo1.jpgの画像を一度変数gaに記録してからpictureboxに表示させようとしました。 うまくいきません。どこが間違っているのでしょうか。pictureboxのプロパティーもいろいろ変更しましたが結局はだめでした。 Module Module1    Public ga As String End Module Public Class Form1 Inherits System.Windows.Forms.Form     ga = "momo1.jpg"     PictureBox1.Image = System.Drawing.Image.FromFile("c:\vbnet\cai\ga") End Sub End Class 投稿日時 - 2010-09-17 20:40:44

  • VB.NETでPictureBoxへの描画について

    VB.NETでPictureBoxへの描画について PictureBoxに画像を表示し、余白部分を含めて、マウスで描画できる処理を作成しているのですが、 どうも上手くいかない為、皆さんの知恵をお借りしたいと思い質問させて頂きました。 まず、880×560のPictureBoxを用意し、その中に、600×480の画像を埋め込んでいます。 そのPictureBoxの中で、画像以外の部分(余白)にもマウスで線等を書きたいのです。 画像のみに描く場合は上手くいくのですが、余白を含めると上手くいかなくなってしまい、 困っております。 プログラムの違いは以下の箇所のみです。2の場合は上手くいきます。 1.PictureBox全体に描画する(画像も含め) Dim g As Graphics = PictureBox1.CreateGraphics 2.画像のみに描画する Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) ちなみに、マウスではなく、ボタンクリック時に描画した時は、1の場合でも上手くいきます。 お手数ですが、ご回答の程、よろしくお願いします。

  • pictureboxの使い方

    VB2008 初心者です Pictureboxの使い方について質問です たとえばですが、レースゲーム(F1とか)で上から視点で見るような物を作りたい場合 (コースも車も単純でdraw・・・で簡単に描けるレベル、特に操作するわけで無く、 決まった動きをします) 1.コースも車もPicturebox1(以下pic1)に描いていく 2.コースはpic1に直接描き、車はpic2,3,4・・・と複数使いpic1の上を移動させるのか 3.コースはpic1でその上全体にpic2を被せてpic2に複数の車を書くような方法 4.その他 どの方法が一般的なのでしょうか 一般的な使いかたを教えてください。 宜しく御願いします

専門家に質問してみよう