[問題] 如何觸發動態產生的物件的Click事件

看板C_Sharp (C#)作者 (以光為名)時間13年前 (2012/09/15 02:25), 編輯推噓3(301)
留言4則, 1人參與, 最新討論串1/6 (看更多)
我動態new了幾個PictureBox出來, 並且+=給它們Click的事件, 讓使用者在按下這些圖片的時候會有所動作; 但另外我也想在別的地方,某些別的事件也會觸發按下那些圖片的事件。 通常已經存在的物件(並且有Click事件), 要從別的地方觸發Click很簡單,大概就像是: button_Click(null, e); 但動態生成出來的PictureBox就不知道怎麼寫了, 我現在的寫法是: var thePic = (PictureBox)Controls.Find("物件Name", true)[0]; //先用Name屬性把我要的物件抓出來 thePic_Click(null ,e); //就我所知道寫法是這樣...不過沒過,編譯器是完全看不懂的程度 //順帶一提我的PictureBox Click觸發函式名稱就是Pic_Click,依樣畫葫蘆而已 不知道哪裡做錯了,Google半天也理不出所以然來,只好來板上問問看眾高手們。 另外再一問,像這樣使用Controls.Find找出那些動態生成的物件的做法,是好的嗎? 這樣問好像有點奇怪,只是我一直覺得這種做法似乎有點...大費周章? 比起.Find,.GetChildAtPoint直接抓座標的做法(假設我很確定它就在那裏)會比較優嗎? 懇請賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.163.215 ※ 編輯: stu87616 來自: 1.162.163.215 (09/15 02:27)

09/15 17:17, , 1F
註冊事件不是都用 EventHandler處理嗎
09/15 17:17, 1F

09/15 17:23, , 2F
要注意一下 你註冊給動態產生的picturebox那個事件
09/15 17:23, 2F

09/15 17:29, , 3F
做什麼處理用的... 我不太了解你說用name抓到object後
09/15 17:29, 3F

09/15 17:30, , 4F
然後 thePic_Click(null,e) 單純呼叫click事件??
09/15 17:30, 4F
對,我寫的註冊碼是 Pic.MouseDown += new MouseEventHandler(Pic_Click); 然後下面再寫 void Pic_Click(object sender, MouseEventArgs e) {~~~~~} 大概是這樣 用Name抓到object後,就是很單純的呼叫Click事件沒錯 ※ 編輯: stu87616 來自: 1.162.160.79 (09/15 19:23)
文章代碼(AID): #1GKtQJun (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1GKtQJun (C_Sharp)