2

frmMain と frmPictures の 2 つのフォームがあります。frmMain には、間隔が 5000 (5 秒) のタイマーがあります。frmPictures には、画像が既に読み込まれている 16 個の画像ボックスがあります。タイマーの目盛りごとに、frmMain の背景画像を変更する必要があります。起動時の背景画像は、picturebox1 と同じです。

各タイマー ティックで、プログラムは frmPictures 内の PictureBox をランダムに選択し、frmMain の背景画像を選択した PictureBox の画像に変更する必要があります。

VB.NET でこれを行うにはどうすればよいですか?

4

1 に答える 1

2

まず、すべてPictureBoxesを配列または同様の構造にまとめる必要があります。これは、たとえば次のForm_Load場合に発生する可能性があります。

Dim pictures(15) As PictureBox
pictures(0) = frmPictures.PictureBox1
'...

ところで、なぜ各画像に PictureBoxes があるのですか? アプリケーションの起動時に画像をロードするだけで十分です。

Dim pictures(15) As Image
pictures(0) = Image.FromFile("...")
'...

次に、タイマー イベントで乱数を作成し、画像を選択します。

'Call Randomize() on application startup
Dim rnd = CInt(16 * Rnd())
BackgroundImage = pictures(rnd).Image 'For the picture box method or
BackgroundImage = pictures(rnd)       'For the direct method
于 2013-10-05T08:16:06.260 に答える