C#實現控制元件陣列 (轉)
裡取消了陣列,這讓習慣了使用VB控制元件的員非常不適應。有什麼辦法能夠實現控制元件陣列的功能嗎?答案是肯定的。
眾所周知,控制元件陣列最主要的兩個優點:可以迴圈附值;可以響應同一個事件。從而大大簡化了程式碼。下面根據這兩個方面,舉一個例子。
新建一個工程,在窗體上新增5個textbox(textBox1...textBox5)和2個button (button1、button2)。
1.迴圈附值
總的來說,有兩種實現方法:
1.1 定義動態的控制元件陣列。因為DotNet裡支援動態的控制元件陣列,所以我們可以把已設計好的控制元件,附給動態的陣列,這樣就可以任意的使用了。程式碼如下:
private void button1_Click( sender, System.EventArgs e)
{
TextBox[] myTextBox = new TextBox[5];
myTextBox[0] = textBox1;
myTextBox[1] = textBox2;
myTextBox[2] = textBox3;
myTextBox[3] = textBox4;
myTextBox[4] = textBox5;
for ( int i=0;i< 5;i++)
{
myTextBox[i].Text = "fill_1";
}
}
1.2 利用窗體的控制元件陣列。因為窗體裡的控制元件,都被包括在Control裡面,所以可以根據其類別加以區分。程式碼如下:
private void button2_Click(object sender, System.EventArgs e)
{
foreach(Control myControls in this.Controls)
{
if (myControls.ToString().IndexOf("TextBox") > 0 )
{
myControls.Text ="fill_2";
}
}
}
2.事件響應
讓陣列裡的控制元件都響應同一個相應的事件,透過起在陣列裡唯一的標識,再將他們加以區分。下面一個例子,使5個textBox響應同一個keypress事件。
自定義一個控制元件事件-- textBox_KeyPress ,程式碼如下:
private void textBox_KeyPress(object sender, System..Forms.KeyPressEventArgs e)
{
TextBox box = (TextBox)sender;
MessageBox.Show(this,"you choose " + box.Name + " and you keypress " + e.KeyChar.ToString() ,"try" ,MessageBoxButtons.OK );
}
選定textBox1,按F4顯示其屬性頁,選擇"Events"按鈕(就是那個小閃電),列出了textBox1的所有事件,在keypress裡寫我們想讓他相應的事件的名字--textBox_KeyPress,這樣,當textBox1產生keypress事件時,他相應的是textBox_KeyPress這個我們自定義的事件。同樣,對其它的textBox控制元件也做如上的屬性設定。這樣,5個textBox同時響應一個keypress事件,而可以透過object sender的不同,可以加以區分。這樣就達到了陣列的效果。
以上是根據本人的一點總結而得,如果有其他好的方法,歡迎探討。
minajo21(大眼睛)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#實現控制元件陣列C#控制元件陣列
- DELPHI也可以實現控制元件陣列,用定義陣列變數實現控制元件陣列 (轉)控制元件陣列變數
- 在BCB中使用向量實現控制元件陣列 (轉)控制元件陣列
- c#簡單實現二維陣列和二維陣列列表List<>的轉置C#陣列
- C# 一維陣列如何快速實現陣列元素的資料型別的轉換?C#陣列資料型別
- .NET中新增控制元件陣列 (轉)控制元件陣列
- Java實現普通二維陣列和稀疏陣列的相互轉換Java陣列
- 解析arrify 轉陣列實現示例原始碼陣列原始碼
- php陣列轉xml的遞迴實現PHP陣列XML遞迴
- 面試最常問的陣列轉樹,樹轉陣列 c++ web框架paozhu實現面試陣列C++Web框架
- C#二維陣列在SLG中的實現和使用C#陣列
- C#位元組陣列與字串轉換C#陣列字串
- jQuery實現對陣列元素的轉換效果jQuery陣列
- 在C++中實現變長陣列 (轉)C++陣列
- Swift中實現Array陣列和NSArray陣列的相互轉換與遍歷Swift陣列
- C#陣列相乘C#陣列
- C#陣列教程C#陣列
- c# 陣列排序C#陣列排序
- 陣列排序的實現陣列排序
- golang實現稀疏陣列Golang陣列
- [php]運用變數引用實現一維陣列轉多維樹狀陣列PHP變數陣列
- C# string byte陣列轉換解析C#陣列
- js實現的字串和陣列的相互轉換JS字串陣列
- iOS 字典轉陣列,陣列轉字典iOS陣列
- 在VB.Net中建立使用控制元件陣列 (轉)控制元件陣列
- JS實現陣列去重JS陣列
- PHP 陣列底層實現PHP陣列
- 如何實現陣列去重?陣列
- JavaScript 中實現等分陣列JavaScript陣列
- 約瑟夫環(陣列實現)陣列
- javascript 偽陣列實現方法JavaScript陣列
- 【筆記】oracle 陣列實現筆記Oracle陣列
- C#陣列引數C#陣列
- c# 陣列學習C#陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- C#高效能陣列複製實驗C#陣列
- js實現的陣列和CSV格式的相互轉換JS陣列
- 靜態佇列,迴圈陣列實現佇列陣列