日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

java控件数组_在C# WinForm程序中创建控件数组及相应的事件处理

發(fā)布時間:2024/1/1 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java控件数组_在C# WinForm程序中创建控件数组及相应的事件处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

控件數(shù)組是VB提供的一個優(yōu)秀的設(shè)計解決方案,它能很方便快捷的處理大批同類控件的響應(yīng)和時間處理,但不知為什么在C#中這個優(yōu)秀特性沒有傳承下來,甚為可惜,本文將要探討就是如何在C# WinForm程序?qū)崿F(xiàn)它.

首先請看界面

在上面的界面中,本人想實現(xiàn)一個42個元素的Button數(shù)組來實現(xiàn)一個日歷的功能,上面顯示出了一部分.

其中采用了網(wǎng)格布局來放置這些按鈕.

手工創(chuàng)建為全部按鈕后,在窗體類中代碼中定義成員變量控件數(shù)組:

private Button[] btns;

然后在構(gòu)造函數(shù)中初始化:

btns = new Button[42];

btns[0] = this.button1;

btns[1] = this.button2;

......

btns[40] = this.button41;

btns[41] = this.button42;

大家不禁要問了,如果采用動態(tài)創(chuàng)建豈不更好.其實不然,我采用手工創(chuàng)建的主要原因是手工放置調(diào)整按鈕的位置和大小較為方便,如果動態(tài)創(chuàng)建出來的話,把他們放到界面上比較麻煩,尤其是在比較復(fù)雜的布局中.

然后是為上述數(shù)組中的各個控件添加事件:

for (int i = 0; i < btns.Length;i++ )

{

btns[i].Click += new System.EventHandler(this.btns_Click);

}

如果是要根據(jù)下標添加不同事件也可以的,做一些分支即可.

C#的這種做法類似JavaSwing中AddActionListener做法,發(fā)揮以下我們也可用C#實現(xiàn)MVC.

最后定義btns_Click事件處理函數(shù)就行了:

// 按鈕數(shù)組的事件處理

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強制轉(zhuǎn)化一下就能得到事件對應(yīng)的控件,然后根據(jù)它的Text屬性可以進行唯一性判斷,其后再進行單獨處理即可.

總結(jié)起來,在C#中創(chuàng)建控件數(shù)組很簡單,首先在類中創(chuàng)建一個控件類型的數(shù)組,然后初始化它,具體初始化是動態(tài)創(chuàng)建還是鏈接到已有控件可以根據(jù)情況自行選擇,然后為數(shù)組元素添加事件,最后實現(xiàn)事件即可,在事件實現(xiàn)中即可以通過轉(zhuǎn)化sender來得到相應(yīng)控件.

總結(jié)

以上是生活随笔為你收集整理的java控件数组_在C# WinForm程序中创建控件数组及相应的事件处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。