Vb6 我如何恢复Coolbar乐队订单?

Vb6 我如何恢复Coolbar乐队订单?,vb6,toolbar,Vb6,Toolbar,我在VB6中有一个Coolbar,它有6个带区,每个带区都有一个子工具栏类型。用户可以移动这些标注栏并设置其可见性。当软件重新启动时,我需要恢复设置,但我在恢复顺序/位置时遇到一些问题(我可以恢复可见性和宽度,没有问题) 还原时遇到问题的设置是Coolbar.Bands(Index).Position和Coolbar.Bands(Index).NewRow,因为这两个属性都是只读的 我知道我可以保存Position和NewRow属性,然后在运行时而不是在设计时创建每个标注栏,然后使用保存的属性确

我在VB6中有一个Coolbar,它有6个带区,每个带区都有一个子工具栏类型。用户可以移动这些标注栏并设置其可见性。当软件重新启动时,我需要恢复设置,但我在恢复顺序/位置时遇到一些问题(我可以恢复可见性和宽度,没有问题)

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

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

我不希望在运行时创建带区,但我怀疑这可能是恢复这些设置的唯一方法。有人知道一种方法可以恢复工具栏的顺序/位置,而不必在运行时创建标注栏吗

我可以很容易地保存/加载设置,因此我们可以跳过该步骤


任何帮助都将不胜感激,请提前感谢

您不能直接这样做。但是,以下代码应提供与移动标注栏相同的效果:

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

谢谢你,可惜不可能直接做,但这应该很好。