PictureBox間の画像データの受け渡しの方法は?

解決


町や空に  2008-12-22 02:37:12  No: 141145

VB2005です。
PictureBox1のImageプロパティに画像ファイルを指定して
PictureBox2.Image=PictureBox2.Image
とすれば簡単にPicturBox2に画像が伝達されます。しかし,PictureBox1の画像が,Draw系のメソッドで描かれたものの場合,伝達された内容はNullになっているようです。
①そうなる理由  ②Draw系のメソッドで描いた画像を伝達する方法
を御教示下さい。


町や空に  2008-12-22 02:39:26  No: 141146

上記3行目,ミス記入しました。

PictureBox2.Image=PictureBox1.Image

でした。


Hongliang  2008-12-22 03:25:52  No: 141147

そりゃ直接描くからとしか言いようがないですが。
Bitmap オブジェクトを作ってそれを PictureBox の Image プロパティに設定し、Draw するのはその Bitmap オブジェクトに対して行ってください。描き終えたら PictureBox の Invalidate で画面更新要求。

直接描くのに PictureBox を使う意味は一切ありません。


町や空に  2008-12-22 05:03:06  No: 141148

Hongliangさんありがとうございました。
Bitmapに対して図形を描く方法を調べまたが,今のところ,SetPoint()という点を打つメソッドしか見あたらず,調査中です。DrawLine,DrawString等のPictureBoxやFormに使えるメソッドがあるのかどうか不明です。
もう少し調べてみます。


町や空に  2008-12-26 03:10:22  No: 141149

①PictureBox1に描画する部分で
Dim bmp As Bitmap = New Bitmap(幅,高さ)
Dim g as Graphics = Graphic.FromImage(bmp)
としてから描画し
PictureBox1.Image = bmp
として
②PrintDocument1_PrintPageのSubで
e.Graphics.DrawImage(PictureBox1.Image,10,10)
としておけば,よいことが判明しました。
Hongliang さんのヒントが活きました。ありがとうございました。
それにしても,いつの間にこんなにVBは複雑になったのだろうかと思います。


通るぜ  2008-12-26 19:27:29  No: 141150

VB6がはたしてシンプルだったかは疑問だが、今のやり方になったのは .NETになってからでしょ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加