[問題] 建立物件後的程式寫法請益

看板C_Sharp (C#)作者 (以光為名)時間13年前 (2012/06/24 23:27), 編輯推噓1(1025)
留言26則, 5人參與, 最新討論串1/1
各位高手好,不才又來板上請教似乎應該是很基本的技巧m(_ _)m 以往老師授課都是教我們用好用的工具箱拉物件出來, 然後直接點兩下開始寫程式,很方便很直覺很簡單, textBox1、Button1....已經變成習慣。 現在私底下自己在摸索一些進階的功能,遭遇了一個障礙, 我用程式碼動態的建立一個物件後,不知道怎麼呼叫它?! 程式碼是這樣子的: Button Btn = new Button(); 然後是一串物件描述(Name. Location. Size...) this.Controls.Add(Btn); Btn.Click += new EventHandler(Btn_Click); 然後下面再寫一個函式來描述這些物件的作用 void Btn_Click(object sender, EventArgs e) { } 以上是我Google出來的寫法,還算過得去,也看得懂, 但是卡在Btn_Click裡面不知道怎麼開始著手, 比如我要知道這個建立出來的Btn的Size, 以往只要簡單的Button1.Size這樣就呼叫出來了, 但現在前面的主詞要放什麼都不對, 我試過直接用this,但不對,它會呼叫到Form1的(?), 另外試了幾個也都不行,也Google不到,只好厚著臉皮來板上問。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.246.211

06/24 23:32, , 1F
Button btn = (Button)sender;
06/24 23:32, 1F
唔,可以了! 原來是這樣,感謝指教orz ※ 編輯: stu87616 來自: 1.171.246.211 (06/24 23:51) 希望還有人會看到(?) 進一步的問題是這樣的, 我動態的建立了許多PictureBox,想要換圖片的時候不知道該如何呼叫, 我用this.Controls.Find(); 這個指令可以成功的抓到我要的那些PictureBox 但是this.Controls.Find().←這裡之後,用Name啦,Size啦,都可以很正常抓到, 但那是很通用的屬性,PictureBox獨有的Image屬性就不會出來, 這樣不知道怎麼改圖片... 請問我這樣的做法有錯嗎?要怎麼過這關... ※ 編輯: stu87616 來自: 1.162.162.170 (06/26 23:21)

06/26 23:21, , 2F
自推一下 希望有人能看到orz
06/26 23:21, 2F

06/26 23:28, , 3F
...應該可以轉型吧
06/26 23:28, 3F

06/26 23:29, , 4F
話說當初動態生成的時候,不就可以把增加的記錄下來了嗎
06/26 23:29, 4F
呃...可以詳細一點說明嗎@@ 要怎麼記錄下(這樣就能讓編譯器知道這是一個PictureBox嗎? ※ 編輯: stu87616 來自: 1.162.162.170 (06/26 23:34) 還有轉型...感覺就是我要的答案,這個要怎麼做? ※ 編輯: stu87616 來自: 1.162.162.170 (06/26 23:34)

06/26 23:40, , 5F
var b1 = (Button)controls.Find("button1", true)[0];
06/26 23:40, 5F

06/26 23:40, , 6F
這例子可以嗎
06/26 23:40, 6F

06/26 23:44, , 7F
我看得懂這個意思..不過嘗試下去編譯器還是沒有出現Image
06/26 23:44, 7F

06/26 23:44, , 8F
的屬性給我控制@@
06/26 23:44, 8F

06/26 23:49, , 9F
((XXX)controls.Find("OXOX", true)[0]).Image這樣?
06/26 23:49, 9F

06/26 23:49, , 10F
這樣總該會跳出來了吧..
06/26 23:49, 10F

06/26 23:53, , 11F
試出來了 感謝大大耐心解說
06/26 23:53, 11F

06/26 23:53, , 12F
是先 var b1=((XXX)controls.Find("OXOX", true)[0]);
06/26 23:53, 12F

06/26 23:53, , 13F
然後b1.Image就會出現了
06/26 23:53, 13F

06/27 01:22, , 14F
s3748679大大用心解了這些~有瞭解為什麼可以這樣用嗎?為什
06/27 01:22, 14F

06/27 01:23, , 15F
麼會有通用屬性?為什麼會有Image屬性?
06/27 01:23, 15F

06/27 01:55, , 16F
嗯..我的想法是沒有特別說就只有通用屬性
06/27 01:55, 16F

06/27 01:55, , 17F
因為用強制轉換註明了這是一個pictureBox,所以編譯器知道
06/27 01:55, 17F

06/27 01:55, , 18F
這個控制項該有Image
06/27 01:55, 18F

06/27 02:24, , 19F
這...我想還是先去看看什麼是"繼承"、"界面"~"深入淺出設
06/27 02:24, 19F

06/27 02:25, , 20F
計模式"雖然是用Java寫的~但看懂它應該沒問題~先看懂第一
06/27 02:25, 20F

06/27 02:26, , 21F
章的鴨子範例就好了~再回頭看這裡的 Control、Button、Pic
06/27 02:26, 21F

06/27 02:27, , 22F
tureBox是什麼樣的關係~接著可以查微軟官網~看看為什麼sen
06/27 02:27, 22F

06/27 02:28, , 23F
der可以轉成該button來使用~EvenArgs的用處又是什麼...
06/27 02:28, 23F

06/27 12:12, , 24F
有物件瀏覽器可以查... 不夠的話再去逛逛msdn..
06/27 12:12, 24F

06/27 20:37, , 25F
ok,瞭解了 感謝詳細的講解..我會盡力確實鑽研的
06/27 20:37, 25F

06/28 01:28, , 26F
你先買本書來看好嗎
06/28 01:28, 26F
文章代碼(AID): #1Fvp7Pf6 (C_Sharp)
文章代碼(AID): #1Fvp7Pf6 (C_Sharp)