Laden...

ListView unsichtbare Items?

Letzter Beitrag vor 15 Jahren 8 Posts 2.112 Views
ListView unsichtbare Items?

Hallo zusammen,
besteht die möglichkeit in einem TabControl Items unsichtbar anzuhängen?
Quasi so:

list.items.add("Diese Option startet den Weltuntergang[Unsichtbar]-optionId-var1-var2[/Unsichtbar]");

Tabs

Hallo Jamal23,

meist Du wirklich ein Tab-Steuerelement (das ist ein Panel mit Registerkarten) oder doch vielleicht ein Listensteuerelement (ListView, DataGrid, DataGridView)?

Da es mir nach dem ListView aussieht, hier mal meine Lösung dazu:

Du definierst eine Datenklasse:


class ListHelper
{
  public string Text;
  public string Daten;

  ListHelper(string pText, string pDaten)
  {
    Text = pText;
    Daten = pDaten;
  }

  public overrides void ToString()
  {
    return Text;
  }
}

Dann kannst du die Datenklasse statt dem String der Listbox hinzufügen:

list.items.add(new ListHelper("Diese Option startet den Weltuntergang", "-optionId-var1-var2"))

Das was die ToString-Methode zurück gibt ist der angezeigte Text der Listbox.
Zugreifen kannst du auf die Optionen dann beispielsweise so:

((ListHelper)list.SelectedItem).Daten

Jetzt steht es dir z.B. frei, auch Interfaces zur Sortierung einzubauen, du bist völlig frei in der Datenanzeige und kannst quasi unendlich viele Daten an die Einträge hängen.

/edit: Natürlich dann nicht wirklich public-Member verwenden, sondern in Eigenschaften kapseln, war jetzt nur zu faul dazu. 😉

Hallööchen oder besser guten Morgen,
Rainbird, ich muss mich bei dir entschuldigen. Natürlich handelt es sich um ein List-View... dieses befindet sich nur in einem Tab-Steuerelement...

Und Lars, deine Variante werde ich gleich mal ausprobieren, sieht allerdings schon so aus als ob dieses funktionieren würde 😉...

Vielen Dank bis dahin. Ob es funktioniert, schreib ich ecuh gleich... 😃

Grüße

 public overrides void ToString()
  {
    return Text;
  }

das void ist da Fehl am Platz?

So wirklich funktionieren tut das nicht... hymmmm....

Hallo Jamal23,

es ist doch offensichtlich, dass public override String ToString() gemeint ist.

herbivore

Hast mich erwischt. 😄 Ich progge normalerweise in VB.NET und habe den C#-Syntax mit meinen 4 Jahre zurückliegenden Unikenntnissen zusammen gekratzt. ^^ Schreib einfach override hin und das VS setzt dir den passenden Methodenrumpf darunter...

Ich glaub, du verwechselst Listview mit Listbox.
Listview hat keine .SelectedItem-Property.

Ich würde derlei Datenverarbeitung auch mit Datenverarbeitungstechnologie machen, also mit einem datengebundenem DatagridView.
Da kann man spalten jeden Typs anlegen, und es steht einem frei, die anzuzeigen oder nicht.

gugge auch Vergleich DatagridView - ListView

Der frühe Apfel fängt den Wurm.

Stimmt statt ListView sollte dann besser das DataGridView verwendet werden. Soll einfach nur eine Liste von Strings angezeigt werden denke ich ist eine ListBox angebrachter. Dann ist das DGV einfach zu ressourcenhungrig. (Wobei ich unter bestimmten Anwendungszwecken sogar beim ListView streiten würde 😉 )