国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在C# WinForm程序中創建控件數組及相應的事件處理

2019-11-17 03:01:07
字體:
來源:轉載
供稿:網友
在C# WinForm程序中創建控件數組及相應的事件處理

控件數組是VB提供的一個優秀的設計解決方案,它能很方便快捷的處理大批同類控件的響應和時間處理,但不知為什么在C#中這個優秀特性沒有傳承下來,甚為可惜,本文將要探討就是如何在C# WinForm程序實現它.首先請看界面 在上面的界面中,本人想實現一個42個元素的Button數組來實現一個日歷的功能,上面顯示出了一部分. 其中采用了網格布局來放置這些按鈕.手工創建為全部按鈕后,在窗體類中代碼中定義成員變量控件數組: PRivate Button[] btns;然后在構造函數中初始化: btns = new Button[42];

btns[0] = this.button1; btns[1] = this.button2; ...... btns[40] = this.button41; btns[41] = this.button42;大家不禁要問了,如果采用動態創建豈不更好.其實不然,我采用手工創建的主要原因是手工放置調整按鈕的位置和大小較為方便,如果動態創建出來的話,把他們放到界面上比較麻煩,尤其是在比較復雜的布局中.然后是為上述數組中的各個控件添加事件: for (int i = 0; i < btns.Length;i++ ) { btns[i].Click += new System.EventHandler(this.btns_Click); } 如果是要根據下標添加不同事件也可以的,做一些分支即可. C#的這種做法類似javaSwing中AddActionListener做法,發揮以下我們也可用C#實現MVC.最后定義btns_Click事件處理函數就行了: // 按鈕數組的事件處理 private void btns_Click(object sender, System.EventArgs e){ String[] arrs = ((Button)sender).Text.Split('/n');

String day = arrs[0];

if (day.Length < 2) { day = "0" + day; }

String date = currMonthLbl.Text + "-" + day;

mainForm.RefreshDatePanel(date); }從上面可以看出,將sender用Button強制轉化一下就能得到事件對應的控件,然后根據它的Text屬性可以進行唯一性判斷,其后再進行單獨處理即可.總結起來,在C#中創建控件數組很簡單,首先在類中創建一個控件類型的數組,然后初始化它,具體初始化是動態創建還是鏈接到已有控件可以根據情況自行選擇,然后為數組元素添加事件,最后實現事件即可,在事件實現中即可以通過轉化sender來得到相應控件.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安福县| 乡宁县| 云浮市| 洪湖市| 平度市| 吉水县| 尼玛县| 盐边县| 青浦区| 江永县| 平潭县| 盐亭县| 普宁市| 怀化市| 祁门县| 科技| 屏山县| 呼伦贝尔市| 会泽县| 江北区| 六盘水市| 绩溪县| 宽甸| 会昌县| 军事| 嘉鱼县| 塘沽区| 莱芜市| 蛟河市| 五寨县| 武清区| 黄平县| 宜宾县| 靖西县| 宣汉县| 同心县| 南雄市| 临沂市| 宣恩县| 会昌县| 雷波县|