如何在VB6中更改框架控件的容器?

3
我的开发环境是vb6, 问题是在动态创建一个带有子控件的Frame控件后,按照Frame控件的索引顺序更改标题并指定一个容器时,索引0会占用与不同索引对应的控件的所有容器。
有没有办法防止索引0占用其他索引控件的容器?
我尝试过以下方法:
(列表框中有6个数据。) (“全部”存在于列表索引0处) (Frame和较低的控件的索引0已经存在。)
Dim nIdx   As Inteager

For nIdx = 0 to ListBox.ListCount -1
    '
    If nIdx <> 0 Then
        '
        Load Frame(nIdx)
        Load TextBox(nIdx)

        Frame(nIdx).Caption = ListBox.List(nIdx)
        TextBox(nIdx).Container = Frame(nIdx)
        
        Frame(nIdx).Top = Frame(nIdx - 1).Top + Frame(nIdx - 1).Height + 90

        Frame(nIdx).Visible = True
        TextBox(nIdx).Visible = True
    End If
Next nIdx

当执行时,预期的是TextBox(Index)将依赖于相同索引的Frame容器,但实际上,当TextBox(Index)的容器发生变化时,Frame(0)的标题也发生了变化,并且Frame(0)中的TextBox(Index)也都发生了变化。
1个回答

3
我不确定它为什么会表现出这样的行为,但解决方法很简单。在定义容器时,你需要添加一个Set语句。
Set TextBox(nIdx).Container = Frame(nIdx)

在处理对象时,Set是必需的。

多亏了你,问题已经解决了。 - undefined

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