Entwickler-Ecke
WinForms - Einträge in Combo box ändern
Murphy9904 - Mo 13.09.10 12:48
Titel: Einträge in Combo box ändern
Hi,
ist es möglch die Einträge iner Combo box zu ändern?
Ich möche je nachdem welches Objekt aus einer Listbox ausgewählt ist andere Auswahlmöglichkeiten in meiner Combo Box haben (diese sollen aus der Klasse von dem Objekt entnommen werden)
mit Box.Items.Add kann ich Objekte hinzufügen. aber wie bekomm ich die Vorigen dann wieder weg?
und gibt es eine Möglichkeit einer Klasse verschieden viele Werte zuweisen zu lassen?
Wenn eine normale Klasse erstelle muss ja normalerweise jeder darin aufgeführte Wert belegt sein.
LG
Murphy
Ralf Jansen - Mo 13.09.10 13:20
| Zitat: |
Ich möche je nachdem welches Objekt aus einer Listbox ausgewählt ist andere Auswahlmöglichkeiten in meiner Combo Box haben (diese sollen aus der Klasse von dem Objekt entnommen werden)
mit Box.Items.Add kann ich Objekte hinzufügen. aber wie bekomm ich die Vorigen dann wieder weg? |
Box.Items.Clear vor dem hinzufügen der neuen Liste? Einfacher wäre das per Databinding wenn also deine Klasse eine Liste der möglichen Combobox Werte hält einfach diese Liste der Datasource der Combobox zuweisen.
| Zitat: |
| und gibt es eine Möglichkeit einer Klasse verschieden viele Werte zuweisen zu lassen? |
Du sprichst im Rätseln. Für verschieden Mengen an Werten gib es verschiedene List Klassen (Arrays, generische Listen, Collections, Dictionaries, Hashsets etc.). Such dir das passende aus.
C#-Quelltext
1:
| Wenn eine normale Klasse erstelle muss ja normalerweise jeder darin aufgeführte Wert belegt sein. |
Ein nicht zugewiesene Property hat ihren Defaultwert. Denn musst du nur passend definieren so das der als ~unbelegt~ gilt. Da hilft vielleicht schon einfach diesen Wert als nullable zu definieren.
Murphy9904 - Mo 13.09.10 13:51
gut,
das sieht so aus als müsst ich einfach ein Array in meine Klasse schreiben.
jetzt mal ne ganz doofe Frage: wie geht denn das in der Klasse?
normal schreibt man ja nur: "string[] bla = new string[10];" , und man hat sich ein Array gebastelt.
wie macht man das bei der Klasse dann? so dass das auch im "Constructor" drinnen is?
Yogu - Mo 13.09.10 15:31
Du kannst deiner Klasse ein privates Feld hinzufügen, indem du eben diese Zeile in den Klassenblock schreibst, also etwa so:
C#-Quelltext
1: 2: 3:
| class MyClass { private string[] myArray = new string[10]; } |
Die Zuweisung könntest du auch im Konstruktur vornehmen.
Murphy9904 - Mo 13.09.10 15:44
Danke,
hatte mich grad nur etwas doof angestellt :D
und wie kann ich bei nem Array einen Standartwert setzen? und wie fülle ich das Array dann?
irgendwie klappt das alles nicht so wie ich will.. (ich wills warscheinlich einfach nur falsch)
so ist das anscheinend nicht richtig:
Quelltext
1:
| MyListBoxItem Item = new MyListBoxItem("test",{"wert1","wert2"}); |
Quelltext
1: 2:
| public MyListBoxItem(string name,string[] auswahl) ..... |
wie geht das dann?
Yogu - Mo 13.09.10 18:55
Murphy9904 hat folgendes geschrieben : |
| und wie kann ich bei nem Array einen Standartwert setzen? |
anstatt mit
new string[10] kannst du ein Array auch z.B. mit
new string[] { "blah", "blubb" } initialisieren.
Murphy9904 hat folgendes geschrieben : |
| und wie fülle ich das Array dann? |
Du kannst dem Feld jederzeit einen neuen Wert zuweisen, wie oben beschrieben. Wenn du aber einen Eintrag nach dem anderen hinzufügen oder entfernen willst, solltest du eine
List<string> verwenden, die z.B. die Methode
Add besitzt. Anschließend kannst du die Liste mit
ToArray() in ein
string[] konvertieren.
Murphy9904 hat folgendes geschrieben : |
so ist das anscheinend nicht richtig:
Quelltext 1:
| MyListBoxItem Item = new MyListBoxItem("test",{"wert1","wert2"}); | |
Schon ganz nah dran, einfach ein
new string[] vor
{ "wert1, "wert2" } setzen, und d hast's :idea:
Murphy9904 - Mo 20.09.10 13:32
gut danke..
Ich hab heut mal bissel in meinem C# Buch rumgelesen, und da war dann etwas mit Parameterlisten erklährt
Beispiel
Quelltext
1:
| public MyListBoxItem(string bla,params string[] CoolesArray) |
hier kann ich jetzt nach hinten offen beliebig viele Werte eintragen:
Quelltext
1:
| MyListBoxItem weight = new MyListBoxItem("Gewicht", "t","kg","g","mg"); |
und das ist das was auf meine Ursprüngliche Frage: "und gibt es eine Möglichkeit einer Klasse verschieden viele Werte zuweisen zu lassen? " Perfekt passt
Danke trotzdem für all eure Ideen :)
Yogu - Mo 20.09.10 15:09
Das params-Schlüsselwort ist eine Ergänzung für Array-Parameter, die das Aufrufen in manchen Fällen etwas erleichtert. Ich denke es, man sollte trotzdem wissen, wie es eigentlich heißen müsste (siehe vorheriger Post vom mir). Wenn du das verstanden hast, kannst auch auch Parameterlisten verwenden, um den Aufruf zu vereinfachen.
Murphy9904 - Mo 20.09.10 15:30
Jap nur mit dem normalen Array hätte ich ja für jedes Objekt ein Array erstellen und anpassen müssen.
aber habs schon verstanden wie du gemeint hattest.. Danke nochmal
LG Murphy
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!