Toolbar problem

3 отговора 62 прегледа
#1

Toolbar problem

Kak moje dinami4no da smenqm kartinkata na buton ot TOOLBAR?
Naprimer ako ima nqkakvo izobrajenie na butona, sled kato se Click-ne varhu butona to da se smeni???
Probvah s tozi kod, no ne stava:( :...

Private Sub TB_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.index
Case 1
TB.Buttons(1).Image = TBIcons.ListImages(2).Picture
End Select
End Sub


Izpisva:
Invalid Key

Please help...

Редактирано от Щиpлиц на

Отговор
в отговор на KreacK #2

Re: Toolbar problem

ImageList обекта го сложи върху формата, за да няма издънки.
Във всяка картинка на ImageList напиши съответния "Key", по който се избира картинката.
Като слагаш бутони на ToolBar-а, от неговото пропърти, листа "General" има едно поле "ImageList", та в него трябва да селектираш обекта "ImageList", или както се казва там при теб. А във втория лист "Buttons" адваш бутони, и за всеки поотделно в полето "Image" пишеш съответния "Key", който отговаря от ImageList.

В кода:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "Open"
Toolbar1.Buttons(Button.Key).Image = "Save"
Case "Save"
Toolbar1.Buttons(Button.Key).Image = "Open"
End Select
End Sub


Т.е. този код разменя картинките на бутоните "Open" и "Save" при натискането последователно на двата. Евентуално, за да започнат да се държат и като съответно променените бутони - трябва да смениш и техните .Key свойства, като разбира се внимаваш да не повториш някой Key и да станат два еднакви, че това предизвиква грешка.

Отговор
в отговор на KreakK #4

Re: Toolbar problem

Значи, забравих да упомена - най-добре е да работиш със свойството "Key" на бутоните, понеже то е уникално в колекцията. Разбира се Index също не може да се повтори, но тази номерация е от поредността на картинките в ImageList. А там доколкото зная може да се добавя картинка и по средата на списъка, а това размества цялата поредица. И в крайна сметка ще се получи така, че на всяка корекция на ImageList ще трябва да си променяш и кода на програмата.

Отговор