Hej såg denna kod i tippset [Ändra CPU prioritet på program från VB] som jag publicerar nedan: Ok, då förstår jag, men hur kan jag åstakomma det vill ville göra med en ListBox? Finns det något smart sätt? Eller blir det så att jag får börja krångla? Använd ImageCombo'n i windows Common Controls 6-2. jag har proggat en klass för det hela.List1.AddItem; Hur fungerar den?
cmbPriority.AddItem "Idle Priority", IDLE_PRIORITY
Går det på något sätt döpa om ListIndex till något mer passande.
Ett exempel vad jag menar:
Om man har 10 st filer *.txt och varje innehåller endast en kort tittel på första raden, därefter en löpande text somi ett email där den första raden i detta fall är subjektet i mailet. Titteln vill jag då som vanligt ha i en Lista, vilket bara är en vanlig AddItem satts. Kan man då göra så att ListIndex antal filnamnet på txtfilerna. Detta skulle vara bra om man sedan sorterat subjekten i alfabetisk ordning (via den inbyggda sorteringen). När man då klickar på en rubrik skall filnamet komma upp. Har i detta exempel sparat filnamnen som datum: 20010101.txt, 20010413.txt, 20020820.txt
Går detta, och i så fall hur?
Jag provade att skriva: List1.AddItem "Kalle", "20020820.txt"
men det fungerade inte.
Hjälp mig!
Syntaxen är: List1.AddItem (Item As String,[Index])
Men jag begriper ändå inte!
Tack för hjälpen!
//DataknutteSv: List1.AddItem; Hur fungerar den?
Sv: List1.AddItem; Hur fungerar den?
Kan du knyta en key till varje item. Behöver inte ha bilder.Sv: List1.AddItem; Hur fungerar den?
fördelen med klassen är att du kan spara vad som helst som ett bakomliggande värde för en listbox.
Så här använder du den:
Form1 (innehåller en listbox som heter List1)
=================================
Option Explicit
Dim WithEvents ListBoxEx As CListboxEx
Private Sub Form_Load()
'Initiera klassen
Set ListBoxEx = New CListboxEx
'Tala om vilken listbox klassen ska använda
Set ListBoxEx.ListBox = List1
'fyll den med data
ListBoxEx.AddItem "Textsträng", "0001939393.txt"
ListBoxEx.AddItem "hähä", "dsffsdfsd.txt"
End Sub
Private Sub ListBoxEx_Click(Text As String, Value As Variant)
MsgBox "Du klickade på " & Value
End Sub
Klassen ska döpas till CListboxEx
========================
Option Explicit
Dim m_colData As Collection
Dim WithEvents m_lstBox As ListBox
Public Event Click(Text As String, Value As Variant)
Public Event DblClick(Text As String, Value As Variant)
Private Sub Class_Initialize()
Set m_colData = New Collection
Randomize
End Sub
Public Property Set ListBox(aListBox As ListBox)
Set m_lstBox = aListBox
End Property
Public Sub AddItem(ListboxText As String, Value As Variant)
Dim iKey As Integer
'Create a key that associates the value with the listbox
iKey = Int((1000 - 1 + 1) * Rnd + 1)
m_colData.Add Value, "k" & iKey
'Add it to the listbox
m_lstBox.AddItem ListboxText
m_lstBox.ItemData(m_lstBox.NewIndex) = iKey
End Sub
Private Sub m_lstBox_Click()
Dim iKey As Integer
iKey = m_lstBox.ItemData(m_lstBox.ListIndex)
RaiseEvent Click(m_lstBox.Text, m_colData("k" & iKey))
End Sub
Private Sub m_lstBox_DblClick()
Dim iKey As Integer
iKey = m_lstBox.ItemData(m_lstBox.ListIndex)
RaiseEvent DblClick(m_lstBox.Text, m_colData(iKey))
End Sub