none
[VB2010]Picturebox Array RRS feed

  • 問題

  • First, thanks for reading!
    Here is my code.

    Public Class Form1
    Dim Pic(256) As PictureBox

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    For I As Integer = 0 To 256
    Pic(I) = New PictureBox
    Pic(I).Name = "PictureBox" + (I + 1).ToString
    Next

    Label3.Text = Pic(253).Name
    Pic(253).BackColor = Color.Red

    End Sub
    End Class

    The question is why Pic(253)'s backcolor didn't get red!
    thanks

    2013年5月14日 下午 01:05

解答

  • 你有把 Pic(253) 這個 pictureBox 加到畫面上嗎?  我這樣寫, 顯示在畫面上是紅色沒錯啊.

    Private Sub Button15_Click(sender As System.Object, e As System.EventArgs) Handles Button15.Click
    		For I As Integer = 0 To 256
    			Pic(I) = New PictureBox
    			Pic(I).Name = "PictureBox" + (I + 1).ToString
    		Next
    
    		Label3.Text = Pic(253).Name
    		Pic(253).BackColor = Color.Red
    		Me.Controls.Add(Pic(253))
    	End Sub


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年5月14日 下午 02:12
    版主

所有回覆

  • 你有把 Pic(253) 這個 pictureBox 加到畫面上嗎?  我這樣寫, 顯示在畫面上是紅色沒錯啊.

    Private Sub Button15_Click(sender As System.Object, e As System.EventArgs) Handles Button15.Click
    		For I As Integer = 0 To 256
    			Pic(I) = New PictureBox
    			Pic(I).Name = "PictureBox" + (I + 1).ToString
    		Next
    
    		Label3.Text = Pic(253).Name
    		Pic(253).BackColor = Color.Red
    		Me.Controls.Add(Pic(253))
    	End Sub


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年5月14日 下午 02:12
    版主
  • 開一個 Form2.vb ,拉一個 PictureBox 存檔。

    打開該目錄下的 Form2.Design.vb ,就可以看到一個控制項怎樣加入 Form2 。抄到你的 Form1 內。

    使用前後記得搭配 Form.SuspendLayout 及 Form.ResumeLayout 等,參照上面剪貼內的程式碼。否則你會對於執行速度感到受不了~

    最後,當成作業玩玩沒關係,避免 PictureBox 建立這麼多個,很傷資源... 用 Label 顯示圖片都比 PictureBox 省資源。

    2013年5月14日 下午 03:45
  •     '我把您的程式複製貼到 VS2008, 再設中斷點檢查, Pic(253).BackColor 的確是紅色的啊,
        '... 冒昧問一下:您有在那一行設中斷點確認不是紅色的嗎?
        '... 因為沒看到有設定那些 PictureBox 的 Location、Size, 所以全部重疊在一起, Pic(253)被後面的 254~256 層層蓋住了...


    Ader


    也蠻好奇為何寫在 Button2.Click? 每按一次 Button2 就 [重新] 增加 257 個 PictureBox !?
    • 已編輯 Ader.Chen 2013年5月14日 下午 04:18 好奇
    2013年5月14日 下午 04:15