如何恢复Coolbar Band Order?

时间:2012-08-06 08:53:28

标签: vb6 toolbar

我在VB6中有一个Coolbar,它有6个Bands,每个Bands都有一个Child类型的工具栏。用户可以移动这些波段并设置其可见性。我需要在重新启动软件时恢复设置,但是我在恢复订单/位置时遇到一些问题(我可以恢复可见性和宽度而没有任何问题)。

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

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

我不想在运行时创建Band,但我怀疑它可能是恢复这些设置的唯一方法。有没有人知道如何恢复工具栏的顺序/位置,而无需在运行时创建乐队?

我可以轻松保存/加载设置,因此我们可以跳过这一步。

任何帮助都将非常感谢,提前感谢

1 个答案:

答案 0 :(得分: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