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

作者: me8z7gnk (SONG-SONG)   2016-07-30 02:30:29
請輸入專案類型(網站專案或者應用程式專案):
各位高手好 小弟最近寫 小朋友下樓梯
在製造樓梯時 遇到了一些問題 程式碼如下 第一種:
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
這樣只會產生一個物件 如下圖


但是 如果改成下面程式碼 第二種:
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
如下圖


這樣就可以產生很多物件了
第一種寫法 如果要產生很多物件 要改什麼?
是否要用到繼承的方法?
因為小弟是新手 問的問題很混亂 抱歉
希望各位高手解惑 謝謝
作者: johnpage (johnpage)   2016-07-30 03:15:00
pic(i) = PictureBox1《=
作者: me8z7gnk (SONG-SONG)   2016-07-30 11:46:00
j大的意思是什麼 不太懂 可以稍微給點方向嗎? 謝謝
作者: wolfriya (靖雷)   2016-08-09 16:27:00
不能new完一個物件後又指定該物件為既有的物件這樣不管new幾次會是同一個物件Picturebox因此不管迴圈次數幾次都只會讓同一個物件Picturebox移動而不會產生新的第二種是比較標準的寫法,建議用第二種
作者: me8z7gnk (SONG-SONG)   2016-08-28 13:46:00
謝謝 感恩 謝謝W大
作者: garyl62327 (garyl62327)   2016-08-30 07:18:00
我比較好奇第一種為什麼宣告陣列new一次 迴圈又new一次?有人能跟我解釋嗎~
作者: me8z7gnk (SONG-SONG)   2016-09-03 16:21:00
to g大 書上好像是寫 外面的new 是宣告物件For 裡面的new 是建立物件
作者: garyl62327 (garyl62327)   2016-09-04 23:58:00
我白痴了 那是陣列宣告 竟然沒看出來orz我通常會打Dim pic(30) As PictureBox 之後才會像你For裡面那樣new出來

Links booklink

Contact Us: admin [ a t ] ucptt.com