- 最後登錄
- 2024-4-26
- 在線時間
- 3177 小時
- 註冊時間
- 2004-8-20
- 閱讀權限
- 20
- 精華
- 0
- UID
- 12056
- 帖子
- 475
- 積分
- 967 點
- 潛水值
- 31629 米
| 成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。 本帖最後由 baepi 於 2018-1-23 04:12 PM 編輯
近來小弟開始初涉C#這領域
有個專案是全動態創建UI
過程並不難...創建元件 + 把該元件丟到指定的容器便能顯示(如下)
- Button bt = new Button();
- bt.SetBounds(10, 10, 100, 20);
- this.pictureBox1.Controls.Add(bt);
複製代碼 但如今有個糾結點...因為會有多個容器...(如: PictureBox Panel GroupBox )
若是創建個button...以我目前的寫法會變得極度冗長(如下)
- public void add_Button (int x , int y , int w , int h , object obj , int sw)
- {
- Button bt = new Button();
- bt.SetBounds(x, y, w, h);
- switch(sw)
- {
- case 0:
- if(true)
- {
- PictureBox pb = (PictureBox)obj;
- pb.Controls.Add(bt);
- }
- break;
- case 1:
- if (true)
- {
- Panel p = (Panel)obj;
- p.Controls.Add(bt);
- }
- break;
- case 2:
- if (true)
- {
- GroupBox gb = (GroupBox)obj;
- gb.Controls.Add(bt);
- }
- break;
- }
複製代碼 以上只是把我原本的程式簡化(因為容器太多了)...如此不僅不方便閱讀....以後若是有問題感覺也難以檢修(畢竟要創建的UI有很多很多
因此想請問....能否有辦法將函式優化成(如下)
使用者只要輸入add_Button (10 ,10 , 100 , 20 , this.pictureBox1 , PictureBox );
也即是(如上)...最後一個參數可導入資料類型...讓該函式可直接知道收到的obj是甚麼資料類型
... |
|