[.NET] PictureBox帶入另一個PictureBox的問題

看板Visual_Basic作者 (SONG-SONG)時間8年前 (2016/07/30 02:30), 8年前編輯推噓4(4011)
留言15則, 4人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案): 各位高手好 小弟最近寫 小朋友下樓梯 在製造樓梯時 遇到了一些問題 程式碼如下 第一種: Dim pic As PictureBox() = New PictureBox(30) {} For i = 2 To 30 pic(i) = New PictureBox() '建立物件 pic(i) = PictureBox1 Me.Panel1.Controls.Add(Me.pic(i)) pic(i).Location = New Point(0, 40*i) Next 這樣只會產生一個物件 如下圖 http://i.imgur.com/ZOozffO.png
但是 如果改成下面程式碼 第二種: For i = 2 To 30 pic(i) = New PictureBox() '建立物件 pic(i).Size = PictureBox1.Size pic(i).BackColor = PictureBox1.BackColor Me.Panel1.Controls.Add(Me.pic(i)) pic(i).Location = New Point(0, 40*i) Next 如下圖 http://i.imgur.com/d1ytz8p.png
這樣就可以產生很多物件了 第一種寫法 如果要產生很多物件 要改什麼? 是否要用到繼承的方法? 因為小弟是新手 問的問題很混亂 抱歉 希望各位高手解惑 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.70.205 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1469817032.A.441.html ※ 編輯: me8z7gnk (218.161.70.205), 07/30/2016 02:40:53

07/30 03:15, , 1F
pic(i) = PictureBox1《=
07/30 03:15, 1F

07/30 11:46, , 2F
j大的意思是什麼 不太懂 可以稍微給點方向嗎? 謝謝
07/30 11:46, 2F

08/09 16:27, , 3F
不能new完一個物件後又指定該物件為既有的物件
08/09 16:27, 3F

08/09 16:27, , 4F
這樣不管new幾次會是同一個物件Picturebox
08/09 16:27, 4F

08/09 16:28, , 5F
因此不管迴圈次數幾次都只會讓同一個物件Picturebox移動
08/09 16:28, 5F

08/09 16:29, , 6F
而不會產生新的
08/09 16:29, 6F

08/09 16:34, , 7F
第二種是比較標準的寫法,建議用第二種
08/09 16:34, 7F

08/28 13:46, , 8F
謝謝 感恩 謝謝W大
08/28 13:46, 8F

08/30 07:18, , 9F
我比較好奇第一種為什麼宣告陣列new一次 迴圈又new一
08/30 07:18, 9F

08/30 07:18, , 10F
次?有人能跟我解釋嗎~
08/30 07:18, 10F

09/03 16:21, , 11F
to g大 書上好像是寫 外面的new 是宣告物件
09/03 16:21, 11F

09/03 16:22, , 12F
For 裡面的new 是建立物件
09/03 16:22, 12F
※ 編輯: me8z7gnk (140.113.150.94), 09/03/2016 16:23:10

09/04 23:58, , 13F
我白痴了 那是陣列宣告 竟然沒看出來orz
09/04 23:58, 13F

09/05 00:07, , 14F
我通常會打Dim pic(30) As PictureBox 之後才會像你Fo
09/05 00:07, 14F

09/05 00:07, , 15F
r裡面那樣new出來
09/05 00:07, 15F
文章代碼(AID): #1Ncw38H1 (Visual_Basic)
文章代碼(AID): #1Ncw38H1 (Visual_Basic)