2016-11-26 118 views
0

我有以下函數循環通過表單上的控件來將有用的數據存儲到字符串數組中。它跳過2,因爲第一個控件是標籤。第二個控件可以是文本框或複選框。我的功能允許我收集所有的文本框信息,但不是複選框。我如何修改我的功能來收集複選框信息?我可以用類似的東西真/假,選中/未選中等動態控件

Public Function createInput() As String() 
    Dim int = myControls.Length 
    Dim count As Integer = 0 
    Dim str(int) As String 
    For i = 1 To int - 1 Step 2 
     str(count) = myControls(i).Text 
     count += 1 
    Next 
    Return str 
End Function 

回答

0

我怎麼能修改我的功能來收集信息複選框?

可以使用在控制集合OfType分機,假定myControls是一個控制集合:

For Each cb As CheckBox in myControls.OfType(Of CheckBox) 

Next 
0

可以檢查對象的類型,並採取相應的行動

Public Function createInput() As String() 
    Dim int = myControls.Length 
    Dim count As Integer = 0 

    Dim ctrlData As New List(Of String)() 
    For Each c As Control In myControls 
     If TypeOf c Is TextBox Then 
      ctrlData.Add(c.Text) 
     ElseIf TypeOf c Is CheckBox Then 
      ctrlData.Add(DirectCast(c, CheckBox).Checked) 
     ElseIf TypeOf c Is ListBox Then 
      Dim lb As ListBox = DirectCast(c, ListBox) 
      If lb.SelectedIndex > -1 Then 
       ctrlData.Add(lb.SelectedValue) 
      End If 
     ElseIf . . . . . Then 
       . . . . 
     Else 
       . . . . . . 
     End if 
    Next 
    Return ctrlData.ToArray() ' <-- Note that List is more flexible than array 
End Function 

這是參照您正在查找:https://msdn.microsoft.com/en-us/library/s4zz68xc.aspx