VB6如何获取控件数组中被选中/勾选的控件

3

我需要修改一个VB6应用程序,并且在控件数组上一再碰壁。

我知道数组的事件处理程序包括其索引值,我可以在那里设置某些变量,但我应该能够直接访问OptionButton数组中选择的单选按钮。目前我正在这样做:

For i = 0 To optView.Count - 1
    If optView.Item(i).value = True Then
        currIndex = i
        Exit For
    End If
Next

这真的是我唯一的选择吗?
2个回答

3

是的,这是我们唯一的选择。控件数组对象不包含任何选择逻辑(这有道理,因为“selected”可能对不同的控件意味着不同的东西)。我唯一会做的更改就是用 For Each 替换 For


0

我曾经使用的另一种方法是编写一个函数,然后调用该函数,传入控件名称以返回索引号。这样,您可以在将来重复使用它,特别是如果将其添加到模块(.bas)中。

Function f_GetOptionFromControlArray(opts As Object) As Integer

    ' From  http://support.microsoft.com/KB/147673
    ' This function can be called like this:

    ' myVariable = f_GetOptionFromControlArray(optMyButtons)   'Control syntax OK
    ' myVariable = f_GetOptionFromControlArray(optMyButtons()) 'Array syntax OK

    On Error GoTo GetOptionFail
    Dim opt As OptionButton

    For Each opt In opts
        If opt.Value Then
            f_GetOptionFromControlArray = opt.Index
            Exit Function
        End If
    Next

    GetOptionFail:
        f_GetOptionFromControlArray = -1

End Function

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接