Ereignis beim Hinzufügen eines Items in eine ListBox.

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von tobinator.

    Ereignis beim Hinzufügen eines Items in eine ListBox.

    Hey Leute! :D

    In meinem Programm wird durch Buttonklick ein Item zu einer Listbox hinzugefügt. Nun wollte ich, dass immer wenn ein Item hinugefügt wird eine Schleife ausgelöst wird. Am besten durch ein Ereignis.

    Gibt es bei den ListBox-Ereignissen ein für mein Problem passendes??

    VB.NET-Quellcode

    1. Public Event MyEvent
    2. ' ...
    3. RaisEvent MyEvent
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    tobinator schrieb:

    Ich hatte es inzwischen schon mit 2 Timern gelöst.
    Warum ein Timer?
    Warum zwei Timer :?:
    Wenn Du eine Pizza bestellst, ennst Du doch auch nicht alle 5 Minuten zur Tür und siehst nach, ob der Pizzabote da ist, Du wartest, bis er klingelt.
    Und genau dies tun Events.
    Poste dann mal Deinen Code. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Code + Dankeschön

    Ich hab's jetzt ganz anders gemacht. Erst wollte ich es mit einem Event machen. Hatte aber irgendwo einen fehler eingebaut. Jetzt habe ich einfach auf eine Sub geschrieben. Funktioniert jetzt!



    Das Programm sucht einen Pfad ab ob sich dort MP3-Dateien befinden, die (teilweise) mit dem Suchwort übereinstimmen und schreibt die Pfade der Dateien in eine ListBox (also ganz easy). Dann wird in einer Schleife nur die Namender Dateien ineine 2. Listbox geschrieben. (Das Ganze ist die Suchfunktion eines MusikPlayers)

    VB.NET-Quellcode

    1. Dim SearchPattern As String = txtSuchbegriff.Text
    2. For Each foundFile In My.Computer.FileSystem.GetFiles(Ordner.SelectedItem.ToString, FileIO.SearchOption.SearchTopLevelOnly, "*.mp3")
    3. If foundFile.Contains(SearchPattern) Then
    4. My.Forms.Suche.listGefundeneDateien.Items.Add(foundFile)
    5. End If
    6. Next
    7. NameHerausfinden()


    und dann


    VB.NET-Quellcode

    1. Sub NameHerausfinden()
    2. While istfertig = 0
    3. Dim Pfad As String = ListBox1.SelectedItem.ToStringDim Dateiname As String = Pfad.Split(""c).Last
    4. ListBox2.Items.Add(Dateiname)
    5. If Not ListBox1.SelectedIndex = ListBox1.Items.Count - 1 Then
    6. ListBox1.SelectedIndex += 1
    7. Else
    8. ListBox1.SelectedIndex = 0
    9. ListBox2.SelectedIndex = 0
    10. istfertig = 1
    11. End If
    12. End While
    13. End Sub


    Das ist zwar nicht so wie ich's wollte, hat aber die gleiche Funktion. :thumbsup:
    Danke an alle, die mir hier geantwortet und geholfen haben.
    Ich weiß nicht, was Du da gemacht hast, aber wenn es Dir immer noch darum geht, ein Ereignis auszulösen, wenn ein Item geadded oder removed wird, dann wär es doch ein Leichtes gewesen, die ListBox-Klasse abzuleiten und diese Events per Hand hinzuzufügen. Z. B. könntest Du die WndProc-Methode der ListBox-Klasse überschreiben und dort die entsprechenden Nachrichten auswerten oder einfach eine eigene Logik einfügen. Wäre alles 1000x besser gewesen als das da.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o