tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von sheel
  • 2 Beitrag von rd4eva
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
562
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hale Hale ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    19
    Hallo Leute,

    Ich stehe vor folgendem Problem:

    Ich adde ein Item in eine ListBox und möchte an diesem Item danach einen versteckten Wert hitnerlegen. Es ist zwingend notwendig, dass der Wert an dem Item und nicht dem Index hinterlegt wird, da die Reihenfolge der Items sich ständig verschiebt.

    Ich habe schon versucht etwas mit der Tag-Property zu unternehmen, bin jedoch noch nicht wirklich gut weitergekommen =( und hoffe nun auf eure Hilfe.

    Im Prinzip hatte ich mir das alles so vorgestellt:

    ListBox.Items.Insert(0, "Item");
    ListBox.SelectedIndex = 0;
    ListBox.Tag.SelectedIndex = "Mein Wert";
    Jedoch ist der letzte Schritt keineswegs korrekt und ich erbitte um Hilfe dies zu ändern. Selbstverständlich handelt es sich hierbei um eine Windows Forms und c#-Code.

    Gruß
    Hale
     

  2. #2
    ademo ademo ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    11
    Hallo Hale

    Kenne mich nicht so aus mit der Listbox bin mir nicht sicher ob das geht, falls nicht würde ich es so lösen --->

    auch wen sich die indexe ändern kannst du diese wider auslesen mit;

    Code :
    1
    
    int index = listBox1.Items.IndexOf("TEST");

    Falls die Listbox zur Laufzeit erstellt wird würde ich das ganze mit einem DataSet lösen und den zweiten wert einfach immer kurz aus einem DataSet auslesen.

    oder ne MultiColumn Listbox machen und den zweiten wert verstecken.

    mfg ademo
     

  3. #3
    Hale Hale ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    19
    Hi Chihyo,

    danke für deine Antwort, aber ich habe gerade eine gänzlich andere Methode gefunden, welche über eine Extra Klasse geht, womit ich genau das realisieren kann was ich brauche.

    Falls sich jmd. für diese mögliche Lösung interessiert helfe ich ab sofort gerne weiter, am besten einfach eine PM an mich

    Gruß
    Hale
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    einfach die Lösung hier reinschreiben wäre auch nicht schwer...
    Nico Graichen bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    Für Zukünftige Hilfe suchende hier eine Möglichkeit:

    Listbox.Items ist eine ObjectCollection und akzeptiert somit alles was von object erbt. Also so ziemlich fast alles.
    Man kann sich also einfach eine eigene Klasse mit den benötigten Eigenschaften schreiben.
    Wichtig ist dabei nur die geerbte ToString() Methode zu überschreiben da diese den Wert zurück gibt der letztendlich in der ListBox angezeigt wird.

    Beispiel:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    public class listBoxItem
            {
                private string text;
                public string Text
                {
                    get { return text; }
                    set { text = value; }
                }
     
                private object tag;
                public object Tag
                {
                    get { return tag; }
                    set { tag = value; }
                }
     
                public override string ToString()
                {
                    return this.text;
                }
            }

    Items zu einer Listbox hinzufügen:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    listBoxItem first = new listBoxItem();
                first.Text = "firstText";
                first.Tag = "firstTag";
     
                //Oder kürzer
                listBoxItem second = new listBoxItem() { Text = "SecondText", Tag = "SecondTag" };
     
                listBox.Items.Add(first);
                listBox.Items.Add(second);
    sheel und Hale bedanken sich. 
    In order to understand recursion, one must first understand recursion.

Ähnliche Themen

  1. [C#] Wert einer Textbox nach Enter an Listbox
    Von Mettbrot im Forum .NET Windows Forms
    Antworten: 5
    Letzter Beitrag: 15.09.09, 20:39
  2. Win32API TreeView child items adden
    Von Plurax im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 31.08.09, 18:42
  3. für einen Textknoten einen Wert hinterlegen
    Von P_H_I_L im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 22.02.08, 17:11
  4. [C#] Listbox Items anzeigen
    Von Hawkings im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 14.02.08, 15:22
  5. Werte bei Listbox hinterlegen
    Von discoboy im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 16.09.06, 14:11