ListBox (Adressbuch)

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Cross.

    ListBox (Adressbuch)

    Hi!

    Ich will ein E-Mail Adressbuch erstellen...

    Aich weis, wie man etwas in die ListBox einfügt:
    Man gibt in die Textbox1 die E-Mail ein und sie wird in die ListBox einetragen:

    VB.NET-Quellcode

    1. ListBox1.Items.Add("" & TextBox1.Text)



    Ich habe schon alles versucht.. ;(
    Aber wie kann ich auf einen Eintrag klicken und diesen umbennen?
    Und wieder löschen?


    Und dies alles in My.Settings speichern.

    Bitte um Hilfe!


    MFG
    STEAM-PROFIL // CS:GO'LER // WEBSEITE

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Cross“ ()

    also in einer ListBox bearbeiten wird schwer...
    Evtl. das selektierte Item auslesen und Replace (Text ersetzten).

    Speichern kannst du, in dem du mit einer Schleife alle Einträge durchgehst und jeden in einen String schreibst (mit vbCrLf getrennt) und diesen String speicherst du dann ab.
    Laden kannst du, indem du den String wieder splittest und jede Zeile in die Listbox einfügst.


    Grüsse
    Pascal
    Da mir langweilig ist, habe ich mal für dich gecodet (Ich hoffe aber, dass du dir diesen Code anschaust und dir etwas dabei überlegst und nicht nur Copy & Paste machst....):

    Speichern/Laden

    VB.NET-Quellcode

    1. Public Sub SaveListBox(ByVal ListBox As ListBox, ByVal Pfad As String)
    2. Dim _list As String = ""
    3. For i As Integer = 0 To ListBox.Items.Count - 1
    4. ListBox.SelectedIndex = i
    5. _list &= ListBox.Text & vbCrLf
    6. Next
    7. _list = _list.Remove(_list.LastIndexOf(vbCrLf), 1)
    8. IO.File.WriteAllText(Pfad, _list)
    9. End Sub
    10. Public Sub LoadListBox(ByVal ListBox As ListBox, ByVal Pfad As String)
    11. Dim _list As String
    12. If Not IO.File.Exists(Pfad) Then
    13. MessageBox.Show("Datei nicht gefunden")
    14. Else
    15. _list = IO.File.ReadAllText(Pfad)
    16. ListBox.Items.Clear()
    17. For Each line As String In _list.Split(vbCrLf)
    18. ListBox.Items.Add(line)
    19. Next
    20. End If
    21. End Sub

    Aufruf:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. SaveListBox(ListBox1, "C:\lb.txt")
    3. End Sub
    4. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    5. LoadListBox(ListBox1, "C:\lb.txt")
    6. End Sub



    Umbenennen:

    VB.NET-Quellcode

    1. Public Sub RenameEntry(ByVal NewText As String, ByVal ListBox As ListBox, ByVal Index As Integer)
    2. Dim _index = Index
    3. ListBox.Items.RemoveAt(_index)
    4. ListBox.Items.Insert(_index, NewText)
    5. End Sub

    Aufruf:

    VB.NET-Quellcode

    1. RenameEntry("Hallo", ListBox1, ListBox1.SelectedIndex)


    Löschen:

    VB.NET-Quellcode

    1. Public Sub RemoveEntry(ByVal ListBox As ListBox, ByVal Index As Integer)
    2. ListBox.Items.RemoveAt(Index) 'Einzeiler ;)
    3. End Sub

    Aufruf:

    VB.NET-Quellcode

    1. RemoveEntry(ListBox1, ListBox1.SelectedIndex)



    Grüsse
    Pascal

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „PascalN“ ()

    Nun im Event des buttons "E-Mail hinzufügen"
    schreibst du eben den Code, dass ein Item hinzugefügt wird. (Listbox1.Items.Add(TextBox1.Text))
    Ich sehe, dass du Items anhand eines Textes löschen willst. Dann musst du anstatt die "RemoveAt", die "Remove" Funktion nehmen
    ListBox1.Items.Remove(TextBox2.Text)

    Grüsse
    Pascal
    Wenn du das Item zum Löschen markierst, ist die 2. TextBox unnötig.
    Dann wählst du einfach ein Item aus und löschst es mit der Methode, die ich dir zuerst gegeben habe (RemoveAt)..
    Ein bisschen Eigeninitiative ist schon zu erwarten... Ich habe dir sogar den GANZEN Code gegeben (mehr kann ich auch nicht machen ;) )

    Grüsse
    Pascal

    VB.NET-Quellcode

    1. Public Sub RenameEntry(ByVal NewText As String, ByVal ListBox As ListBox, ByVal Index As Integer)
    2. Dim _index = Index
    3. ListBox.Items.RemoveAt(_index)
    4. ListBox.Items.Insert(_index, NewText)
    5. End Sub

    Warum denn so umständlich? ^^

    VB.NET-Quellcode

    1. Public Sub RenameEntry(ByVal NewText As String, ByVal ListBox As ListBox, ByVal Index As Integer)
    2. ListBox.Items(Index) = NewText
    3. End Sub