我在VB6中有一个Coolbar,它有6个Bands,每个Bands都有一个Child类型的工具栏。用户可以移动这些波段并设置其可见性。我需要在重新启动软件时恢复设置,但是我在恢复订单/位置时遇到一些问题(我可以恢复可见性和宽度而没有任何问题)。
我在恢复时遇到的设置是Coolbar.Bands(Index).Position和Coolbar.Bands(Index).NewRow,因为这两个属性都是只读的。
我知道我可以保存Position和NewRow属性,然后在运行时创建每个Band而不是设计时,然后使用保存的属性来确定创建Bands的顺序。
我不想在运行时创建Band,但我怀疑它可能是恢复这些设置的唯一方法。有没有人知道如何恢复工具栏的顺序/位置,而无需在运行时创建乐队?
我可以轻松保存/加载设置,因此我们可以跳过这一步。
任何帮助都将非常感谢,提前感谢
答案 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