C 實現控制項陣列

2021-04-16 14:13:47 字數 1087 閱讀 7219

dotnet裡取消了控制項陣列,這讓習慣了使用vb控制項的程式設計師非常不適應。有什麼辦法能夠實現控制項陣列的功能嗎?答案是肯定的。

眾所周知,控制項陣列最主要的兩個優點:可以迴圈附值;可以響應同乙個事件。從而大大簡化了**。下面根據這兩個方面,舉乙個例子。

新建乙個工程,在窗體上新增5個textbox(textbox1...textbox5)和2個button (button1、button2)。

1.迴圈附值

總的來說,有兩種實現方法:

1.1 定義動態的控制項陣列。因為dotnet裡支援動態的控制項陣列,所以我們可以把已設計好的控制項,附給動態的陣列,這樣就可以任意的使用了。**如下:

private void button1_click(object sender, system.eventargs e) }

1.2利用窗體的控制項陣列。因為窗體裡的控制項,都被包括在control裡面,所以可以根據其類別加以區分。**如下:

private void button2_click(object sender, system.eventargs e) }

} 2.事件響應

讓陣列裡的控制項都響應同乙個相應的事件,通過起在陣列裡唯一的標識,再將他們加以區分。下面乙個例子,使5個textbox響應同乙個keypress事件。

自定義乙個控制項事件-- textbox_keypress ,**如下:

private void textbox_keypress(object sender, system.windows.forms.keypresseventargs e)

選定textbox1,按f4顯示其屬性頁,選擇"events"按鈕(就是那個小閃電),列出了textbox1的所有事件,在keypress裡寫我們想讓他相應的事件的名字--textbox_keypress,這樣,當textbox1產生keypress事件時,他相應的是textbox_keypress這個我們自定義的事件。同樣,對其它的textbox控制項也做如上的屬性設定。這樣,5個textbox同時響應乙個keypress事件,而可以通過object sender

的不同,可以加以區分。這樣就達到了陣列的效果。

以上是根據本人的一點經驗總結而得,如果有其他好的方法,歡迎**。

C 實現控制項陣列

dotnet裡取消了控制項陣列,這讓習慣了使用vb控制項的程式設計師非常不適應。有什麼辦法能夠實現控制項陣列的功能嗎?答案是肯定的。眾所周知,控制項陣列最主要的兩個優點 可以迴圈附值 可以響應同乙個事件。從而大大簡化了 下面根據這兩個方面,舉乙個例子。新建乙個工程,在窗體上新增5個textbox t...

在C 程式中建立控制項陣列

要在窗體中顯示控制項就先要建立它,比如乙個 bottom 控制項,在c 中所有的控制項都是繼承基類的子類,自然 bottom 也是乙個類。那麼建立乙個 bottom 類的陣列,必需要例項化才行。bottom btnarray new bottom 10 像建立陣列一樣,簡單吧,嘿嘿。for int ...

C 做的乙個日期控制項,用控制項陣列做的

c 做的乙個日期控制項,用控制項陣列做的 using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.da...