有谁知道如何在VB.net中动态地将数组添加到一堆组合框中?我真的可以使用这个帮助(我整天都在苦苦挣扎)。当我尝试按照我的方式进行操作时,我在表单加载时出错。
我的代码:
Private Sub Form1_Load(ByVal sender as Object, ByVal e as EventArgs) Handles Me.Load
Dim MyArray() as String = {"a","b","c"}
For each ctl as ComboBox in Me.Controls
if ctl.tag = "yadda" then ctl.Items.AddRange(MyArray)
Next
End Sub
错误:“无法将类型为'...按钮'的对象转换为'... Combobox'。”
我为这段代码尝试了很多变化,但我无法让它工作。在我的应用程序中,我最终将有近百个类似构造的组合框,我希望能够以编程方式初始化它们的项目。有人可以帮忙吗?
谢谢,
利亚
答案 0 :(得分:3)
这是做到这一点的方法:
Public Class Form1
Function getControl(ByVal controlName As String) As Control
Dim numCtrls = Me.Controls.Count()
For I As Integer = 0 To numCtrls - 1
If Me.Controls.Item(I).Name = controlName Then
If TypeOf Me.Controls.Item(I) Is ComboBox Then
Return CType(Me.Controls(controlName), ComboBox)
End If
End If
Next
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim myArray As Array = {"a", "b", "c"}
Dim myComboBox As ComboBox
For Each ctl As Control In Me.Controls
If TypeOf ctl Is ComboBox Then
If ctl.Tag = "yadda" Then
myComboBox = getControl(ctl.Name)
myComboBox.Items.AddRange(myArray)
End If
End If
Next
End Sub
End Class
循环浏览所有控件(按钮,组合等等),然后检查它是否是您想要的类型(ComboBox)并执行您需要的任何操作。
祝你好运!