Bilder och textfärg i combo- och listboxar

 

XL-Dennis får en del frågor om bilder i combo- och listboxar varför detta tips har tillkommit.

De två Active-X kontroller som medföljer MS Office klarar varken textfärg eller bilder.

Har vi tillgång till MS Visual Basic eller till MS Office Developer-versionen så medföljer två andra Active-X kontroller, "MS ImageCombo control" och "MS ImageList control, vilka tillsammans möjliggör bilder i comboboxar men inte i listboxar.

Här presenteras kontrollerna XComboBox och XListBox mer utförligt och som får ses som goda alternativ till ovanstående. Dessa två Active-X kontroller ingår i paketet Visual Basic 2004 Super Library från SamLogic.

 

Följande bild visar hur dessa två kontroller kan skapa professionella lösningar i formulär:

 

Så här ser koden ut i formulärets modul:

Option Explicit  

Private Sub cmbCancel_Click()

   Unload Me

End Sub

 

Private Sub cmbOK_Click()

   With XCombo1

      If Not .ListIndex = -1 Then MsgBox .ListIndex & " " & .Text

   End With  

   With XListBox1

      If Not .ListIndex = -1 Then MsgBox .ListIndex & " " & .Text

   End With  

   Unload Me

End Sub

 

Private Sub UserForm_Initialize()

   Const RGB_DKBLUE = &H7F0000

   Const RGB_RED = &HFF&

   Const RGB_GRAY = &H7F7F7F

   Const RGB_LTGRAY = &HC0C0C0

 

   Dim sSokVag As String

   sSokVag = "e:\OfficeIkoner"

 

   With Me.XCombo1

      .Sorted = False

      .AddItem "   XL-Dennis"

      .AddItem "   MS Excel"

      .AddItem "   XComboBox med bilder"

      .ItemForeColor(0) = RGB_GRAY

      .ItemForeColor(1) = RGB_RED

      .ItemForeColor(2) = RGB_DKBLUE

      Set .ItemPicture(0) = LoadPicture(sSokVag & "\StarOffice.ico")

      Set .ItemPicture(1) = LoadPicture(sSokVag & "\Help.ico")

      Set .ItemPicture(2) = LoadPicture(sSokVag & "\aca.ico")

      .ListIndex = -1

   End With

 

   With Me.XListBox1

      .Sorted = False

      .AddItem "   XL-Dennis"

      .AddItem "   MS Excel"

      .AddItem "   XListBox med bilder"

      .ItemForeColor(0) = RGB_GRAY

      .ItemForeColor(1) = RGB_LTGRAY

      .ItemForeColor(2) = RGB_DKBLUE

      Set .ItemPicture(0) = LoadPicture(sSokVag & "\StarOffice.ico")

      Set .ItemPicture(1) = LoadPicture(sSokVag & "\Help.ico")

      Set .ItemPicture(2) = LoadPicture(sSokVag & "\aca.ico")

      .ListIndex = -1

   End With

 End Sub  

 

Visual Basic Super Library 2004, XComboBox och XListBox är varumärken som tillhör SamLogic.