Re: [問題] 如何觸發動態產生的物件的Click事件
※ 引述《stu87616 (以光為名)》之銘言:
: ※ 引述《proach (pazroach)》之銘言:
: : 還是因為什麼因素,你在 runtime 時創造了不知道名字的 Control?
: 恩,因為其實是生成了很多個
: 創造的時候用了個簡單的for迴圈
: Name的屬性是Pic+數字這樣
: 而且創造的內容是寫在Form_Load裡頭,
: 操作的程式碼在別的按鈕或函式裡面,
: 根本也呼叫不到@@(這部分是不是我有什麼弄錯了?),
: 說實在每次要去抓動態產生的物件都要Find一下我也很不喜歡呢( ̄ー ̄;)
: var ← 這個類別好像也不能放在外面當全域變數使用,
: (不然我很想這麼做,不然我次在不同的函式內要用都得Find一次)
其實差不多就是 andymi 講的那樣吧?
在 runtime 時產生了很多的 Controls, 但 method 是在寫程式時寫的,
因此你只能將動態產生的 Controls共用同一個或數個 method.
例如產生 List<Button> MyButtons, 生出一百個之後,通通都是
MyButtons[i].Click += new EventHander( Shared_Method );
之後在 Shared_Method( objet sender,... )內,用 sender確認
是誰被按到的。我用過三個方法,前兩個跟您相同,看 Name 決定,
或是掃瞄座標來決定,另一個是直接掃瞄所有的 MyButtons,
看誰 == 就是他啦。
我比較喜歡在產生時,就生出一個特定的字串當 Name,抓到 sender的 Name
之後,直接 switch做動作。
不過以上的方法我都沒測過執行效率,或者有高手可以指點一二,感謝感謝 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.199.21
推
09/16 16:39, , 1F
09/16 16:39, 1F
→
09/16 16:40, , 2F
09/16 16:40, 2F
→
09/16 16:41, , 3F
09/16 16:41, 3F
→
09/16 16:42, , 4F
09/16 16:42, 4F
→
09/16 16:42, , 5F
09/16 16:42, 5F
→
09/16 16:43, , 6F
09/16 16:43, 6F
→
09/16 17:09, , 7F
09/16 17:09, 7F
→
09/16 17:09, , 8F
09/16 17:09, 8F
推
09/16 17:11, , 9F
09/16 17:11, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 6 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章