Autor Beitrag
Shadow73
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 06.06.19 21:27 
Hallo zusammen,

ich habe folgendes in den Windows Forms erstellt:

• Links eine Listbox mit vielen Titeln
• In der Mitte ein Label für die Produktbeschreibung
• Rechts eine Imagebox für das Produktbild
• Rechts Mitte ein Label für Zusatzinformationen
• Rechts unten den Preis

Wenn ich nun meine Listbox befüllt habe, was ich über die Items im Eigenschaftsfenster gemacht habe, möchte ich gerne, wenn ich einen Titel in meiner Listbox markiere, die Beschreibung dazu in meinem Label in der Mitte angezeigt bekommen.

Wenn ich den ersten Eintrag in meiner Listbox markiere, dann klappt das so einigermaßen. Die Beschreibung wird angezeigt, allerdings wird mir auch am Ende des Textes noch der Name ausgegeben, was ich eigentlich nicht wollte.

Wie bekomme ich das hin, dass wenn ich einen anderen Eintrag in meiner Listbox markiere, dieser Beschreibungstext angezeigt wird?

LG
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 07.06.19 08:16 
Hallo und willkommen,

dafür gibt es das SelectedIndexChanged-Ereignis.

Wie zeigst du denn bisher die Beschreibung an (welches noch fälschlicherweise den Namen ausgibt)?
Shadow73 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 07.06.19 11:19 
Guten Morgen,

so wie ich das hier im Label hinterlegt habe, wird mir der Produkttext ausgegeben. Ich gehe aber davon aus, dass das falsch ist. Habe gerade erst angefangen mich mit C# zu befassen.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
private void ListBoxArtikel_SelectedIndexChanged(object sender, EventArgs e)
{
    string artikel = listBoxArtikel.SelectedItems.ToString();
    lblProdukttext.Text = "Text" + listBoxArtikel.SelectedItem;
}


Ich habe im Internet schon alles abgesucht und auch in meinen Büchern steht darüber nichts. Vielleicht such ich auch einfach falsch?!

LG

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Fr 07.06.19 11:39 
Moin,

also wenn ich das richtig verstanden habe, willst du immer nur ein Item (Artikelname) auswählen und dessen Beschreibung im Label anzeigen.
Da würde ich nicht SelectedItems benutzen (impliziert ja schon evtl. mehrzahl), sondern konkret das ausgewählte Item abrufen.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
private void ListBoxArtikel_SelectedIndexChanged(object sender, EventArgs e) 
{
    // ausgewählten Artikel ermitteln
    int index = this.listBoxArtikel.SelectedIndex;
    if (index != -1)
    {
        string artikelName = this.listBoxArtikel.Items[index].ToString();
        // Beschreibung setzen
        this.lblProdukttext.Text = deineDatenquelle.GetArtikelBeschreibung(artikelName);   // nur als Bsp., wo auch immer du deine Artikel-Beschreibungen herkriegst
    }
}


Ansonsten:
Zitat:
allerdings wird mir auch am Ende des Textes noch der Name ausgegeben, was ich eigentlich nicht wollte

dann solltest du es dem Programm auch sagen, dass du das nicht willst :D
Zitat:
ausblenden C#-Quelltext
1:
lblProdukttext.Text = "Text" + listBoxArtikel.SelectedItem;					


Gruß
Julian

Moderiert von user profile iconTh69: Doppelposting entfernt (und Änderung hier übernommen).
Shadow73 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 07.06.19 12:06 
Hallo Julian,

hm das ist ja schon wieder was völlig anderes als was ich mir da "zusammengestrickt" habe.

Ist es nicht möglich, die Produkttexte zusammen mit dem markierten Item zu hinterlegen?

So in der Art:
ausblenden C#-Quelltext
1:
2:
Artikel[0] = "Produkttext";
Artikel[1] = "Produkttext2";


LG
Nils

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 07.06.19 12:43 
Doch, möglich ist alles. Hast du es denn mal ausprobiert?
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Fr 07.06.19 12:51 
user profile iconShadow73 hat folgendes geschrieben Zum zitierten Posting springen:
Ist es nicht möglich, die Produkttexte zusammen mit dem markierten Item zu hinterlegen?

Guck dir mal die Klasse Dictionary an. Dort kannst Werte (Produkttexte) mit Schlüsseln (z. B. Artikelname) verknüpft speichern