0

私はVBで小さなプログラムを書いていますが、ボタンのクリックで特定の画像をピクチャボックスに追加したいところに行き詰まっています。私にとって難しいのは、ボタンをクリックするたびに、次の画像ボックスに画像 (同じ場所、たとえば「C:\Test.jpg」) を表示することです。

ピクチャボックス名に変数を使用し、クリックするたびに値を大きくしようとしましたが、エラーが発生し続けました (明らかに間違って使用したに違いありません)。

より明確にするために:

Button1 をクリックします

場所「C:\Test.jpg」の画像が PictureBox1 に表示されます

Button1 をもう一度クリックします

場所「C:\Test.jpg」の画像がPictureBox2などに表示されます。

ご想像のとおり、私は VB.NET の専門家ではないので、何か提案があれば、よろしくお願いします :D

ヴァフル

4

4 に答える 4

0

フォーム レベル:

Private mPList As New List(of PictureBox)
Private pIndex as Integer = 0

表示されているフォーム:

With mPlist
   .Add(PictureBox1)
   .Add(PictureBox2)
   ... continue as needed
Ens With

ボタンクリック

 ' remove image from last picbox (????)
 mPlist(pIndex).Image = Nothing
 pIndex += 1
 if pIndex > mPlist.Count-1 then pIndex = 0
 mPlist(pIndex).Image.FromFile(filename)
于 2013-10-18T13:35:24.093 に答える
0

Controls.Find() を使用した別のアプローチを次に示します。

Public Class Form1

    Private counter As Integer = 0

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        counter = counter + 1
        Dim matches() As Control = Me.Controls.Find("PictureBox" & counter, True)
        If matches.Length > 0 AndAlso TypeOf matches(0) Is PictureBox Then
            Dim pb As PictureBox = DirectCast(matches(0), PictureBox)
            Using fs As New System.IO.FileStream("C:\Test.jpg", IO.FileMode.Open)
                pb.Image = New Bitmap(Image.FromStream(fs))
            End Using
        End If
    End Sub

End Class
于 2013-10-18T14:38:07.873 に答える