作者stu87616 (以光為名)
看板C_Sharp
標題[問題] 建立物件後的程式寫法請益
時間Sun Jun 24 23:27:19 2012
各位高手好,不才又來板上請教似乎應該是很基本的技巧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
1F:→ james732:Button btn = (Button)sender; 06/24 23:32
唔,可以了! 原來是這樣,感謝指教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)
2F:→ stu87616:自推一下 希望有人能看到orz 06/26 23:21
3F:→ s3748679:...應該可以轉型吧 06/26 23:28
4F:→ s3748679:話說當初動態生成的時候,不就可以把增加的記錄下來了嗎 06/26 23:29
呃...可以詳細一點說明嗎@@
要怎麼記錄下(這樣就能讓編譯器知道這是一個PictureBox嗎?
※ 編輯: stu87616 來自: 1.162.162.170 (06/26 23:34)
還有轉型...感覺就是我要的答案,這個要怎麼做?
※ 編輯: stu87616 來自: 1.162.162.170 (06/26 23:34)
5F:→ s3748679:var b1 = (Button)controls.Find("button1", true)[0]; 06/26 23:40
6F:→ s3748679:這例子可以嗎 06/26 23:40
7F:→ stu87616:我看得懂這個意思..不過嘗試下去編譯器還是沒有出現Image 06/26 23:44
8F:→ stu87616:的屬性給我控制@@ 06/26 23:44
9F:→ s3748679:((XXX)controls.Find("OXOX", true)[0]).Image這樣? 06/26 23:49
10F:→ s3748679:這樣總該會跳出來了吧.. 06/26 23:49
11F:→ stu87616:試出來了 感謝大大耐心解說 06/26 23:53
12F:→ stu87616:是先 var b1=((XXX)controls.Find("OXOX", true)[0]); 06/26 23:53
13F:→ stu87616:然後b1.Image就會出現了 06/26 23:53
14F:→ andymai:s3748679大大用心解了這些~有瞭解為什麼可以這樣用嗎?為什 06/27 01:22
15F:→ andymai:麼會有通用屬性?為什麼會有Image屬性? 06/27 01:23
16F:→ stu87616:嗯..我的想法是沒有特別說就只有通用屬性 06/27 01:55
17F:→ stu87616:因為用強制轉換註明了這是一個pictureBox,所以編譯器知道 06/27 01:55
18F:→ stu87616:這個控制項該有Image 06/27 01:55
19F:→ andymai:這...我想還是先去看看什麼是"繼承"、"界面"~"深入淺出設 06/27 02:24
20F:→ andymai:計模式"雖然是用Java寫的~但看懂它應該沒問題~先看懂第一 06/27 02:25
21F:→ andymai:章的鴨子範例就好了~再回頭看這裡的 Control、Button、Pic 06/27 02:26
22F:→ andymai:tureBox是什麼樣的關係~接著可以查微軟官網~看看為什麼sen 06/27 02:27
23F:→ andymai:der可以轉成該button來使用~EvenArgs的用處又是什麼... 06/27 02:28
24F:→ s3748679:有物件瀏覽器可以查... 不夠的話再去逛逛msdn.. 06/27 12:12
25F:→ stu87616:ok,瞭解了 感謝詳細的講解..我會盡力確實鑽研的 06/27 20:37
26F:推 tvbic:你先買本書來看好嗎 06/28 01:28