Autor Beitrag
Murphy9904
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 13.09.10 12:48 
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
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 13.09.10 13:17 
Hallo,

bei MSDN findest du immer Informationen zu den .NET Klassen. So auch zu der CheckBoxList. In den Properties findest du heraus, dass Items vom Typ ListItemCollection ist. Wenn du dir diese Klasse anschaust findest du eine Auflistung aller Methoden samt Beschreibung. Da wirst du eine passende Methode finden.

Gruß
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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:

ausblenden C#-Quelltext
1:
2:
3:
class MyClass {
  private string[] myArray = new string[10];
}


Die Zuweisung könntest du auch im Konstruktur vornehmen.
Murphy9904 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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:
ausblenden Quelltext
1:
MyListBoxItem Item = new MyListBoxItem("test",{"wert1","wert2"});					

ausblenden Quelltext
1:
2:
 public MyListBoxItem(string name,string[] auswahl)
.....


wie geht das dann?
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 13.09.10 18:55 
user profile iconMurphy9904 hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconMurphy9904 hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconMurphy9904 hat folgendes geschrieben Zum zitierten Posting springen:
so ist das anscheinend nicht richtig:
ausblenden 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:

Für diesen Beitrag haben gedankt: Murphy9904
Murphy9904 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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

ausblenden Quelltext
1:
public MyListBoxItem(string bla,params string[] CoolesArray)					

hier kann ich jetzt nach hinten offen beliebig viele Werte eintragen:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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