Re: [問題] 如何觸發動態產生的物件的Click事件
動態產生一堆功能相近的 control, 通常會 "放在一起",
這時候可以把這些 control 放在一個 container 裡面,
例如說放在一個 Panel 內, 然後裡面(也就)不要放其他同 type 的 control.
當你需要對這些動態產生的 control 進行操作時,
就透過這樣一段程式碼:
foreach (var pb in panel1.Controls.OfType<PictureBox>()) { ... }
就可以撈出在 panel1 內的 PictureBox.
如果需要再對這些 PictureBox 做判斷, 就:
panel1.Controls.OfType<PictureBox>()
.Where((pb) => pb.Name.StartWith("..."))
或是利用 Control.Tag 放些更複雜的 object 來描述該 control.
接下來呼叫 event func 的部分就如同上面大家所述,
將這些 PictureBox 的相關資料, 餵給 event handler 即可.
--------------------------------------------------------------------------
如果想要做的是 "真正模擬滑鼠 click", (但我想這不是你現在要的)
可以透過 Win32 API, 參考下面 URL 內的做法:
1. 透過 Cursor.Position 以及 mouse_event API
http://www.pinvoke.net/default.aspx/user32.mouse_event
2. 透過 SendMessage API 傳送 Window Message
http://go4answers.webhost4life.com/Example
/simulate-mouse-click-certain-position-61774.aspx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.23.102
→
09/16 16:44, , 1F
09/16 16:44, 1F
→
09/16 16:45, , 2F
09/16 16:45, 2F
→
09/16 16:45, , 3F
09/16 16:45, 3F
→
09/16 16:46, , 4F
09/16 16:46, 4F
討論串 (同標題文章)
完整討論串 (本文為第 6 之 6 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章