VB2005です。
PictureBox1のImageプロパティに画像ファイルを指定して
PictureBox2.Image=PictureBox2.Image
とすれば簡単にPicturBox2に画像が伝達されます。しかし,PictureBox1の画像が,Draw系のメソッドで描かれたものの場合,伝達された内容はNullになっているようです。
①そうなる理由 ②Draw系のメソッドで描いた画像を伝達する方法
を御教示下さい。
上記3行目,ミス記入しました。
PictureBox2.Image=PictureBox1.Image
でした。
そりゃ直接描くからとしか言いようがないですが。
Bitmap オブジェクトを作ってそれを PictureBox の Image プロパティに設定し、Draw するのはその Bitmap オブジェクトに対して行ってください。描き終えたら PictureBox の Invalidate で画面更新要求。
直接描くのに PictureBox を使う意味は一切ありません。
Hongliangさんありがとうございました。
Bitmapに対して図形を描く方法を調べまたが,今のところ,SetPoint()という点を打つメソッドしか見あたらず,調査中です。DrawLine,DrawString等のPictureBoxやFormに使えるメソッドがあるのかどうか不明です。
もう少し調べてみます。
①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は複雑になったのだろうかと思います。
VB6がはたしてシンプルだったかは疑問だが、今のやり方になったのは .NETになってからでしょ。
ツイート | ![]() |