自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自己動(dòng)手實(shí)現(xiàn)VB.NET控件數(shù)組

開(kāi)發(fā) 后端
這里介紹可以自己寫(xiě)一個(gè)類(lèi)來(lái)實(shí)現(xiàn)VB.NET控件數(shù)組的功能。他們都有現(xiàn)成的代碼,我拿來(lái)用了,很好用。這里我就只簡(jiǎn)單說(shuō)一下我在用這個(gè)類(lèi)的過(guò)程中出現(xiàn)的問(wèn)題。

VB.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解VB.NET了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。由于項(xiàng)目的需求又變了,我必須要在我的窗口上根據(jù)讀取的文件不同添加不同的checkbox,我本以為VB.NET和vb一樣一定會(huì)有控件數(shù)組呢,結(jié)果網(wǎng)上的高手們都說(shuō)沒(méi)有VB.NET控件數(shù)組這個(gè)概念的。不過(guò)可以自己寫(xiě)一個(gè)類(lèi)來(lái)實(shí)現(xiàn)VB.NET控件數(shù)組的功能。他們都有現(xiàn)成的代碼,我拿來(lái)用了,很好用。這里我就只簡(jiǎn)單說(shuō)一下我在用這個(gè)類(lèi)的過(guò)程中出現(xiàn)的問(wèn)題。應(yīng)該比較值得提一下。

  1. Public Class CheckBoxArrClass CheckBoxArr  
  2. Inherits System.Collections.CollectionBase  
  3. Private ReadOnly ParentGrpBx As System.Windows.Forms.GroupBox  
  4. Public Sub New()Sub New(ByVal pGrpBx As System.Windows.Forms.GroupBox)  
  5. ParentGrpBx = pGrpBx 
  6. End Sub  
  7. Default Public ReadOnly Property Item()Property Item
    (ByVal index As Integer) As System.Windows.Forms.CheckBox  
  8. Get  
  9. Return Me.List.Item(index)  
  10. End Get  
  11. End Property  
  12. Public Sub AddItem()Sub AddItem()  
  13. Dim CheckBox1 As New System.Windows.Forms.CheckBox  
  14. Me.List.Add(CheckBox1)  
  15. ParentGrpBx.Controls.Add(CheckBox1)''向窗體中增加控件  
  16. CheckBox1.Tag = Me.Count''Count屬性從CollectionBase 繼承  
  17. CheckBox1.Top = Me.Count * 30  
  18. CheckBox1.Left = 200 
  19. CheckBox1.Text = "CheckBox" & Me.Count.ToString  
  20. End Sub  
  21.  
  22. Public Sub AddItem()Sub AddItem(ByVal CheckBox1 As System.Windows.Forms.CheckBox)  
  23. Me.List.Add(CheckBox1)  
  24. End Sub  
  25.  
  26. Public Sub RemoveItem()Sub RemoveItem()  
  27. If Me.Count > 0 Then  
  28. ParentGrpBx.Controls.Remove(Me(Me.Count - 1))  
  29. Me.List.RemoveAt(Me.Count - 1)  
  30. End If  
  31. End Sub  
  32. End Class  

這里要提的問(wèn)題很簡(jiǎn)單:

1、添加的控件要有個(gè)容器,也就是你要向哪個(gè)地方添加控件的地方。這里,在我標(biāo)為紅色的部分設(shè)置了添加控件的“父親”,你可以直接添加到你的窗體里,那么就可以將紅色部分改寫(xiě)為:“ParentForm”和“form”即將那一句改為:Private ReadOnly ParentForm As System.Windows.Forms.Form。在程序里,我是將checkbox添加到一個(gè)groupbox里的。所以向哪個(gè)容器添加控件就是需要你改的了。

2、控件的布局。記住,控件的位置永遠(yuǎn)是相對(duì)于他的容器的坐標(biāo)的。一下給出我添加控件的擺放代碼:三個(gè)checkbox占一行。

  1. Public Sub GenerateDynCheckBox()Sub GenerateDynCheckBox(ByRef langList As ArrayList)  
  2. CheckBox1 = New CheckBoxArr(GroupBoxAttrInfo)  
  3. Dim i As Integer  
  4. For i = 0 To langList.Count - 1 'langList 存放各國(guó)語(yǔ)言English,F(xiàn)rench。。。。  
  5. 'add the checkbox array  
  6. CheckBox1.AddItem()  
  7. CheckBox1(i).Text = langList(i)  
  8. CheckBox1(i).Checked = True 
  9. CheckBox1(i).Height = 28 
  10. 'layout the checkboxes  
  11. If i = 0 Then  
  12. CheckBox1(i).Top = 20 
  13. CheckBox1(i).Left = 10 
  14. ElseIf i = 1 Then 'Or 2 Then  
  15. CheckBox1(i).Top = 20 
  16. CheckBox1(i).Left = CheckBox1(i - 1).Left + CheckBox1(i - 1).Width  
  17. ElseIf i = 2 Then  
  18. CheckBox1(i).Top = 20 
  19. CheckBox1(i).Left = CheckBox1(i - 1).Left + CheckBox1(i - 1).Width  
  20. ElseIf i <> 0 And i <> 1 And i <> 2 Then  
  21. CheckBox1(i).Top = CheckBox1(i - 3).Top + CheckBox1(i - 3).Height + 10  
  22. CheckBox1(i).Left = CheckBox1(i - 3).Left  
  23. End If  
  24. Next i  
  25. End Sub 

3、刪除控件。用Checkbox的RemoveItem方法,不要使用RemoveAt方法。RemoveAt方法會(huì)導(dǎo)致刪除失敗,會(huì)提示NullReferenceException的錯(cuò)誤,具體為什么我也沒(méi)有再進(jìn)一步研究,如果有高手知道,可以指教一下,小女在這里多謝了。

以上就是我在使用VB.NET控件數(shù)組的一些心得,拙見(jiàn),見(jiàn)笑。

【編輯推薦】

  1. 詳談VB.NET編碼規(guī)范經(jīng)驗(yàn)
  2. 描述VB.NET工程轉(zhuǎn)換成步驟
  3. 講述C#與VB.NET間移植的技巧
  4. 分享個(gè)人總結(jié)VB.NET多線程
  5. 剖析VB.NET TextBox控件
責(zé)任編輯:佚名 來(lái)源: 比特網(wǎng)
相關(guān)推薦

2009-10-16 10:47:58

VB.NET創(chuàng)建控件數(shù)

2009-10-27 14:50:25

VB.NET控件數(shù)組

2010-01-12 15:54:47

VB.NET動(dòng)態(tài)控件數(shù)

2010-01-18 13:12:43

VB.NET控件數(shù)組

2009-10-27 09:01:54

VB.NET內(nèi)存指針

2010-01-07 17:10:01

VB.NET控件數(shù)組問(wèn)

2010-01-07 17:00:38

VB.NET控件數(shù)組

2009-10-22 13:09:19

VB.NET動(dòng)態(tài)控件數(shù)

2009-10-28 09:25:18

VB.NET List

2009-10-27 15:07:40

VB.NET支付寶接口

2010-01-19 10:03:35

VB.NET Labe

2010-01-13 10:53:24

VB.NET控件

2009-10-14 10:19:57

VB.NET Doma

2009-10-14 16:04:43

VB.NET Noti

2009-10-20 10:16:24

VB.NET COMB

2009-10-23 13:14:38

2010-01-18 19:36:52

VB.NET調(diào)整控件

2009-10-16 16:01:07

VB.NET實(shí)現(xiàn)疊代使

2010-01-19 10:12:39

VB.NET Butt

2009-10-14 11:27:20

VB.NET Grou
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)