Re: [問題] 如何觸發動態產生的物件的Click事件
※ 引述《proach (pazroach)》之銘言:
: 其實我看不懂你的意思,交流一下,有錯請指教 :)
: 關鍵字大概是 programatically add controls to ... 之類的術語,
: 要動態產出一個 PictureBox 並不難,其實打開你的 Form1.designer.cs
: 看一下照抄一次就出來了。要掛個 event handler 也是一樣的寫法。
: 要虛擬產生 click 也很簡單,用你的方法 thePic_Click( null, e );
: 還要去定義 e, 不如直接 thePic_Click( null, null); 也是會過的,
: 只要你確定 method那邊不會用到 e 的內容即可。
這部分,由於我是會用到e的內容的,目前我用感覺很笨的方法處理,
直接寫一個按下的內容丟進去,
MouseEventArgs m = new MouseEventArgs(MouseButtons.Left, 1,
Pic.Location.X, Pic.Location.Y, 0);
key_Click(Pic, m);
也就是在那個物件上面按一下左鍵的意思而已,
程式碼是過了,不過總覺得繞了不少遠路@@
: 我的問題是,既然物件是你動態產生的,你應該有它的名字,例如
: PictureBox pictureBoxRuntime; 之類的... 所以寫法都一樣,
: 還是因為什麼因素,你在 runtime 時創造了不知道名字的 Control?
恩,因為其實是生成了很多個
創造的時候用了個簡單的for迴圈
Name的屬性是Pic+數字這樣
而且創造的內容是寫在Form_Load裡頭,
操作的程式碼在別的按鈕或函式裡面,
根本也呼叫不到@@(這部分是不是我有什麼弄錯了?),
說實在每次要去抓動態產生的物件都要Find一下我也很不喜歡呢( ̄ー ̄;)
var ← 這個類別好像也不能放在外面當全域變數使用,
(不然我很想這麼做,不然我次在不同的函式內要用都得Find一次)
我是很新的新手-.-...系上雖然有開課但都講得太淺,
大部分都是自己找資料摸索來的,感覺都是笨問題鬼打牆= =
感謝指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.160.79
→
09/16 01:21, , 1F
09/16 01:21, 1F
→
09/16 01:22, , 2F
09/16 01:22, 2F
→
09/16 01:23, , 3F
09/16 01:23, 3F
→
09/16 01:23, , 4F
09/16 01:23, 4F
→
09/16 01:24, , 5F
09/16 01:24, 5F
所以弄成全域是做得到囉?
我的想法裡面是希望可以直接在外層或是某個public class裡面var好
把該抓的動態元件都抓一抓,之後要使用就可以直接呼叫
不過似乎做不出來@@
※ 編輯: stu87616 來自: 1.169.46.224 (09/16 01:32)
→
09/16 01:39, , 6F
09/16 01:39, 6F
→
09/16 01:40, , 7F
09/16 01:40, 7F
哈哈 我剛剛在等你下一句推文還以為是辦不到
謝謝回答啦 我的問題也算是解決了
只是龜毛的想讓程式不要那麼複雜而已~
※ 編輯: stu87616 來自: 1.169.46.224 (09/16 01:41)
→
09/16 01:48, , 8F
09/16 01:48, 8F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章