Entwickler-Ecke

WinForms - ListBoxItem entfernen!


JelliesBabe - Fr 25.03.16 15:48
Titel: ListBoxItem entfernen!
Hallo Community,

Ich bräuchte mal etwas Unterstützung. Ich sitze hier an meinem Projekt und komme nicht weiter.

Ich habe eine ListBox. In diese ListBox werden Accounts in einem bestimmten Format angezeigt, die aus einer .txt Datei geladen werden.

Nun soll man diese Accounts auch wieder entfernen können. Ich habe es soweit fertig, dass der Account aus der ListBox und der .txt gelöscht wird.


Mein Problem:

Wenn kein Account ausgewählt ist und der Remove Button geklickt wird, stürzt das Programm ab. hat da jemand eine Lösung? Ich dachte an etwas wie:

ListBox = leer; Disabled

Aber ich finde nichts richtiges.


MfG JelliesBabe


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Fr 25.03.2016 um 14:53


Christian S. - Fr 25.03.16 15:52

Hallo und :welcome:!

Du kannst prüfen, ob ein Item in der Listbox ausgewählt ist:

C#-Quelltext
1:
2:
3:
if(yourListBox.SelectedItem != null) { //Item ausgewählt
   //Löschen ...
}


Grüße
Christian

//edit: Benutzt Du wirklich Silverlight? Da Du Daten aus einer Datei lädst, vermutlich nicht. ;)


JelliesBabe - Fr 25.03.16 16:00

Vielen Dank. :D Benutze kein SilverLight..

Das ist mein jetztiger Code.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
private void remove_Click(object sender, RoutedEventArgs e)
        { 
            if(account_liste.SelectedItem != null)
            {

            }
            else
            {
                Config.accounts.Remove(account_liste.SelectedValue);
                account_liste.Items.RemoveAt(account_liste.SelectedIndex);
            }
        }


Inwiefern, kann ich nun das abstürzen unterbinden? Vielleicht den Button deaktivieren solange die ListBox leer ist?

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Christian S. - Fr 25.03.16 16:06

Wieso führst Du den Code im else-Zweig aus? Du willst den doch ausführen, wenn etwas ausgewählt ist, also wenn SelectedItem != null. :gruebel:


JelliesBabe - Fr 25.03.16 16:11

Ups :roll:

Hatte da etwas übersehen. Ich habe es umgesetzt und nun funktioniert es. Vielen, Vielen Dank.

Hier noch einmal der fertige, funktionierende Code:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
private void remove_Click(object sender, RoutedEventArgs e)
        { 
            if(account_liste.SelectedItem != null)
            {
                Config.accounts.Remove(account_liste.SelectedValue);
                account_liste.Items.RemoveAt(account_liste.SelectedIndex);
            }
        }


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt