Arrays 在vb6中将数据从数组传输到组合框
这个案子 单击三个复选框中的任何一个,我需要数据从数组流向组合框,我尝试创建一个数组,但我不确定这是否是代码的正确方式:Arrays 在vb6中将数据从数组传输到组合框,arrays,vb6,Arrays,Vb6,这个案子 单击三个复选框中的任何一个,我需要数据从数组流向组合框,我尝试创建一个数组,但我不确定这是否是代码的正确方式: Private B(2) As String Private M(2) As String Private P(2) As String Private Sub Combo1_Change(Index As Integer) Dim B As String Dim M As String Dim P As String B = Array("Bicholim", "Valp
Private B(2) As String
Private M(2) As String
Private P(2) As String
Private Sub Combo1_Change(Index As Integer)
Dim B As String
Dim M As String
Dim P As String
B = Array("Bicholim", "Valpoi")
M = Array("Mapusa", "Pernem", "Porvorim")
P = Array("Panjim", "Ponda")
If Check1.Checked = True Then
Combo1.items.Add (Bicholim)
Else
combo1.item = Null
If Check2.Checked = True Then
Combo1.items.Add (M)
Else
Combo1.Item = Null
If Check3.Checked = True Then
Combo1.items.Add (P)
Else
Combo1.Item = Null
End Sub
快速代码检查:
首先,真是一团糟。您有VB6控件数组事件过程[Private Sub Combo1_Change(索引为整数)]和默认命名控件[Combo1,Check1,Check2,Check3]。但是,组合添加项语法是VB.NET[Combo1.items.add()]
语法上:
- 每个If/Then块中都省略了End If语句。听起来像 如果你是一名C#程序员
- Bicholim被用作常数, 当你可能指的是“Bicholin”的时候
- 您已在声明了B、M和P 模块级和程序级。后者优先于后者 模块级变量
- 程序级变量B、M和P 声明为字符串。但是,数组函数返回一个变量 类型为String()
- 复选框使用了错误的属性。而不是使用选中的 属性,则应使用值,该值使用以下值: vbChecked、vbUnchecked和VBGRAY
- combo box引用被用作标准对象Combo1,但事件过程表示它是控件数组的一部分(索引为整数)。我会的 删除控件数组参数
- Combo1.Items.Add()用于将项目添加到组合框中。它应该是:Combo1.AddItem()
- Combo1.Items.Add用于添加 字符串数组。在VB6中不能执行此操作(在任何情况下,.NET都会使用 AddRange())
- 正在使用Combo1.Item=Null。。。为什么?。即使 .NET WinForm复选框不使用此语法
Option Explicit
Private Sub RefreshCombo()
Dim B As Variant
Dim M As Variant
Dim P As Variant
B = Array("Bicholim", "Valpoi")
M = Array("Mapusa", "Pernem", "Porvorim")
P = Array("Panjim", "Ponda")
' Remove all items from the array.
Combo1.Clear
If Check1.Value = vbChecked Then
AddArrayItemsToComboBox Combo1, B
End If
If Check2.Value = vbChecked Then
AddArrayItemsToComboBox Combo1, M
End If
If Check3.Value = vbChecked Then
AddArrayItemsToComboBox Combo1, P
End If
End Sub
Private Sub AddArrayItemsToComboBox(ByRef cmb As ComboBox, ByRef vasValues As Variant)
Dim nIndex As Long
For nIndex = 0 To UBound(vasValues)
Combo1.AddItem vasValues(nIndex)
Next nIndex
End Sub
Private Sub Check1_Click()
RefreshCombo
End Sub
Private Sub Check2_Click()
RefreshCombo
End Sub
Private Sub Check3_Click()
RefreshCombo
End Sub
您可以通过使用复选框的控制数组来整理此问题。快速代码检查:
首先,真是一团糟。您有VB6控件数组事件过程[Private Sub Combo1_Change(索引为整数)]和默认命名控件[Combo1,Check1,Check2,Check3]。但是,组合添加项语法是VB.NET[Combo1.items.add()]
语法上:
- 每个If/Then块中都省略了End If语句。听起来像 如果你是一名C#程序员
- Bicholim被用作常数, 当你可能指的是“Bicholin”的时候
- 您已在声明了B、M和P 模块级和程序级。后者优先于后者 模块级变量
- 程序级变量B、M和P 声明为字符串。但是,数组函数返回一个变量 类型为String()
- 复选框使用了错误的属性。而不是使用选中的 属性,则应使用值,该值使用以下值: vbChecked、vbUnchecked和VBGRAY
- combo box引用被用作标准对象Combo1,但事件过程表示它是控件数组的一部分(索引为整数)。我会的 删除控件数组参数
- Combo1.Items.Add()用于将项目添加到组合框中。它应该是:Combo1.AddItem()
- Combo1.Items.Add用于添加 字符串数组。在VB6中不能执行此操作(在任何情况下,.NET都会使用 AddRange())
- 正在使用Combo1.Item=Null。。。为什么?。即使 .NET WinForm复选框不使用此语法
Option Explicit
Private Sub RefreshCombo()
Dim B As Variant
Dim M As Variant
Dim P As Variant
B = Array("Bicholim", "Valpoi")
M = Array("Mapusa", "Pernem", "Porvorim")
P = Array("Panjim", "Ponda")
' Remove all items from the array.
Combo1.Clear
If Check1.Value = vbChecked Then
AddArrayItemsToComboBox Combo1, B
End If
If Check2.Value = vbChecked Then
AddArrayItemsToComboBox Combo1, M
End If
If Check3.Value = vbChecked Then
AddArrayItemsToComboBox Combo1, P
End If
End Sub
Private Sub AddArrayItemsToComboBox(ByRef cmb As ComboBox, ByRef vasValues As Variant)
Dim nIndex As Long
For nIndex = 0 To UBound(vasValues)
Combo1.AddItem vasValues(nIndex)
Next nIndex
End Sub
Private Sub Check1_Click()
RefreshCombo
End Sub
Private Sub Check2_Click()
RefreshCombo
End Sub
Private Sub Check3_Click()
RefreshCombo
End Sub
您可以通过使用复选框的控制数组来整理此问题。快速代码检查:
首先,真是一团糟。您有VB6控件数组事件过程[Private Sub Combo1_Change(索引为整数)]和默认命名控件[Combo1,Check1,Check2,Check3]。但是,组合添加项语法是VB.NET[Combo1.items.add()]
语法上:
- 每个If/Then块中都省略了End If语句。听起来像 如果你是一名C#程序员
- Bicholim被用作常数, 当你可能指的是“Bicholin”的时候
- 您已在声明了B、M和P 模块级和程序级。后者优先于后者 模块级变量
- 程序级变量B、M和P 声明为字符串。但是,数组函数返回一个变量 类型为String()
- 复选框使用了错误的属性。而不是使用选中的 属性,则应使用值,该值使用以下值: vbChecked、vbUnchecked和VBGRAY
- combo box引用被用作标准对象Combo1,但事件过程表示它是控件数组的一部分(索引为整数)。我会的 删除控件数组参数
- Combo1.Items.Add()用于将项目添加到组合框中。它应该是:Combo1.AddItem()
- Combo1.Items.Add用于添加 字符串数组。在VB6中不能执行此操作(在任何情况下,.NET都会使用 AddRange())
- 正在使用Combo1.Item=Null。。。为什么?。即使 .NET WinForm复选框不使用此语法