将用户控件添加到vb6中主窗体上的面板

时间:2016-08-04 13:40:27

标签: vb6

我有一个用户控件,我已添加到表单上的面板中。 我有代码,将在表单上放置此更多副本需要知道如何将这些添加到面板。 Panel没有控件属性。

   If intCount > 0 Then
        For intindex = 0 To intCount - 1
            If intindex > 0 Then
                Load CICMod(intindex)
                With CICMod(intindex)
                    .Width = 8775
                    .Height = 3735
                    .Top = CICMod(intindex - 1).Top + 3735
                    .Left = 360
                    .Visible = True
                End With
            End If
            With CICMod(intindex)
                .RecordID = rs.Fields(0)
                .Revision = rs.Fields(1)
                .Seq = rs.Fields(2)
                .Who = IIf(IsNull(rs.Fields(3)), "", rs.Fields(3))
                .Entrydate = IIf(IsNull(rs.Fields(4)), "01/01/1900", rs.Fields(4))
                .Hours = IIf(IsNull(rs.Fields(5)), 0, rs.Fields(5))
                .Project = IIf(IsNull(rs.Fields(6)), "", rs.Fields(6))
                .Types = IIf(IsNull(rs.Fields(7)), "", rs.Fields(7))
                .Names = IIf(IsNull(rs.Fields(8)), "", rs.Fields(8))
                .Description = IIf(IsNull(rs.Fields(9)), "", rs.Fields(9))
            End With
            If Not rs.EOF Then
                rs.MoveNext
            End If
        Next
        rs.Close
    Else

    End If

1 个答案:

答案 0 :(得分:1)

这应该这样做

Set CICMod(intindex).Container = Frame1

container属性设置该控件的父级,在本例中是“面板”,顺便说一下,VB6中不存在于Frame1,因此{1}现在包含CICMod(intindex)

或者,您可以使用.Add方法的可选Container参数。

object.Add (ProgID, name, container)

将像

一样使用
Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", "myctl", Frame1)

然而,许多人发现这种方法并不总能按预期工作,所以我会推荐第一种方法。如果希望尝试后者,这里有更多的阅读(上面的两个样本都来自这些)。 https://msdn.microsoft.com/en-us/library/aa277578(v=vs.60).aspxhttps://support.microsoft.com/en-us/kb/190670