VB6:某些控件数组元素属性不可用

时间:2013-02-14 14:41:59

标签: properties vb6 control-array

通过重构一些旧的VB6代码,我偶然发现了一些非常奇怪的行为。当我尝试设置控件数组元素的DragMode属性时,编译器会在将此控件与其数组分开时告诉我“找不到方法或数据成员”。

请参阅下面的示例,其中'myControl'只是一个带有文本框的用户控件。而'Controls'是一个带有myControls的控制数组。第一个循环起作用,第二个循环不起作用。

Dim i As Integer
Dim ctrl As myControl

For i = 0 To 2
    myControls(i).DragMode = vbAutomatic
Next i

For Each ctrl In myControls
    ctrl.DragMode = vbAutomatic
Next

更新

感谢@wqw,我得到了每个循环工作。现在适合我的代码看起来像这样:

Dim ctrlExt As VBControlExtender
Dim ctrl As myControl

For Each ctrlExt In myControls

    Set ctrl = ctrlExt

    ctrlExt.DragMode = vbAutomatic
    ctrl.SpecificProperty = "Test"
Next

1 个答案:

答案 0 :(得分:2)

尝试Dim ctrl As VBControlExtender

这有效

Dim i As Integer
Dim ctrl As VBControlExtender

For Each ctrl In Controls
    ctrl.DragMode = vbAutomatic
Next

For i = MyControls.LBound To MyControls.UBound
    MyControls(i).DragMode = vbAutomatic
Next i