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

看板C_Sharp (C#)作者 (rotareti)時間13年前 (2012/09/16 16:25), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串6/6 (看更多)
動態產生一堆功能相近的 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
其實我找無頭緒的時候真的有想過XD 但是卡在滑鼠使用的
09/16 16:44, 1F

09/16 16:45, , 2F
座標是螢幕大小(0~65535) 而Form上的座標似乎是像素
09/16 16:45, 2F

09/16 16:45, , 3F
(0~一千多,弄半天我也不清楚這是要怎麼換算ˊ_>ˋ)
09/16 16:45, 3F

09/16 16:46, , 4F
最後當然還是放棄啦...
09/16 16:46, 4F
文章代碼(AID): #1GLOpiyi (C_Sharp)
文章代碼(AID): #1GLOpiyi (C_Sharp)