[問題] 如何觸發動態產生的物件的Click事件
我動態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
09/15 17:17, 1F
推
09/15 17:23, , 2F
09/15 17:23, 2F
推
09/15 17:29, , 3F
09/15 17:29, 3F
→
09/15 17:30, , 4F
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)
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 6 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章