0

我在 VB6 中有一个 Coolbar,它有 6 个波段,每个波段都有一个 Toolbar 类型的子项。用户可以移动这些波段并设置它们的可见性。重新启动软件时我需要恢复设置,但我在恢复顺序/位置时遇到了一些问题(我可以毫无问题地恢复可见性和宽度)。

我在恢复时遇到问题的设置是 Coolbar.Bands(Index).Position 和 Coolbar.Bands(Index).NewRow,因为这两个属性都是只读的。

我知道我可以保存 Position 和 NewRow 属性,然后在运行时而不是设计时创建每个 Bands,然后使用保存的属性来确定创建 Bands 的顺序。

我宁愿不必在运行时创建乐队,但我怀疑这可能是恢复这些设置的唯一方法。有谁知道无需在运行时创建乐队的方式来恢复工具栏的顺序/位置?

我可以很容易地保存/加载设置,所以我们可以跳过这一步。

任何帮助将不胜感激,在此先感谢

4

1 回答 1

1

你不能直接这样做。但是,下面的代码应该给您带来与能够移动乐队相同的效果:

Private Sub MoveBand(ByVal the_nFromIndex As Long, ByVal the_nToIndex As Long, ByVal the_bNewRow As Boolean)

    Dim oOldBand            As Band
    Dim oNewBand            As Band
    Dim sKey                As String

    With CoolBar.Bands
        Set oOldBand = .Item(the_nFromIndex)
        sKey = oOldBand.Key
        oOldBand.Key = vbNullString
        Set oNewBand = .Add(the_nToIndex + 1, sKey, oOldBand.Caption, oOldBand.Image, the_bNewRow, oOldBand.Child, oOldBand.Visible)
        Set oOldBand = Nothing
        .Remove the_nFromIndex
    End With

End Sub
于 2012-08-07T08:40:46.167 回答