2017-05-01 2 views
0

私は何をしようとしている3つの異なるビットマップを格納し、別のフォームに配置されているピクチャボックスにそれらのいずれかを表示する状況によって異なります。私はこれらの3つの変数をForm1の中に状況に応じてビットマップを与えられているビットマップのビットマップを保持する変数を別のフォームに渡して、それをピクチャボックスに表示するにはどうすればよいですか?

Public bmp1 as bitmap 
Public bmp2 as bitmap 
Public bmp3 as bitmap 

として3つのパブリック変数を得たメインフォームで

..

Private Sub StoreImage() 
    if X then 
      bmp1 = Webcam.bitmap 
    elseif y then 
      bmp2 = Webcam.bitmap 
    else 
      bmp3 = Webcam.bitmap 
    end if 
    form2.DisplayImage() 
end sub 

今私はこれだけを持っていますこの問題に関連するフォーム2のコード:

Public Sub DisplayImage() 
    PictureBox1.Image = Form1.bmp1 
End Sub 

ここに私の問題はあります私はフォーム1のピクチャボックスを作成し、bmp1を使用すると画像が表示されます。何が欠けていますか?

+1

'Form2'を表示しているコードを表示します。一般的には、***コンストラクタのオブジェクトをコンストラクタに渡します。 2番目の形式。そうであれば、これを行う方法を正確に示す多くの例がここにあります。 – Codexer

+0

これは私が正しい方法で行う方法を理解しようとしているものです。私は例の1つに私にリンクを送っていますか?とにかく、ありがとうございました。 – Suppe

+2

[Form1からForm2への値の受け渡し方法](http://stackoverflow.com/questions/42903216/how-to-pass-value-from-form1-to-form2)の可能な複製。あなたがビットマップを渡したいという事実は、このテクニックとは無関係です。 – TnTinMn

答えて

-1

コードを提供した方が良いので、分析する方が良いでしょう。 私はあなたの状況を複製し、すべてが私のプロジェクトでうまくいきます。ある

、Form2の中で、私は次のコードを使用:のForm2で

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    PictureBox1.Image = Form1.bmp1 
End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    PictureBox1.Image = Form1.bmp2 
End Sub 

PictureBox1を、正しく更新されます。もしそれがypuを助けなかったら、私たちがテストできるようにコードを投稿してください。

+0

私の最初の投稿を編集しました。何らかの理由で..何もボックスに表示されません – Suppe

+0

しかし、あなたのコードによると、Form1の変数に異なる値を割り当てていますが、Form2からForm1.bmp1に常にリンクしています。例えばXが偽であれば、Form2には何も見えません。 – Raffaello

+0

今はXが常に真であり、bmp1を動かすことに興味があります(今はbmp2とbmp3を無視してください)。私がbmp1をform1の一時的なpicturebox1に割り当てると、表示したい画像が表示されますが、上のコードを使ってform2に表示されません。 – Suppe

関連する問題