Guten Tag Gemeinde, ich hoffe Ihr könnt mir bei meinem Problem helfen. Ich programmiere grade in Visual Studio 2013 mit C#. Ich würde nun gerne eine Combobox erstellen in der drei Werte stehen, in der zweiten Combobox stehen dann 2 Werte. Sobald jemand die Kombination Wert 1 und Wert 2 gewählt hat soll eine CheckedListBox erscheinen in der dann weit über 100 Werte drin stehen. Hintergrundinfo: Die Werte in der ersten Combobox sind als Beispiel Automarken, jetzt kann jemand in der zweiten Combobox anwählen ob er die Automarke mit Benzin- oder Dieselmotor haben will. in der CheckedListBox stehen dann die optionalen Zubehörteile. Wenn man sich jetzt vorstellt das als Automarken Audi, Mercedes und Volkswagen gewählt werden können, dann gibt es natürlich auch anderes Zubehör. Wie bekomme ich das jetzt hin das er sich nur die Zubehörartikel für Audi zieht wenn Audi ausgewählt wurde, genauso auch mit Mercedes und Volkswagen. Im nächsten Schritt sollen dann die ganzen Auswahlen in einer zweiten Form als Textbox übernommen werden. Ich hoffe Ihr versteht was ich meine. Ihr könnt mir hier antworten oder auch bei Skype unter CJ240196 Ich freue mich auf eure Antworten. Mit freundlichem Gruß Chris
CJ2401 schrieb: > > Wie bekomme ich das jetzt hin das er sich nur die Zubehörartikel für > Audi zieht wenn Audi ausgewählt wurde, genauso auch mit Mercedes und > Volkswagen. was genau verstehst du unter 'sich zieht'. Wenn du denkst, dass du der Listbox im Resource Editor bereits die Zubehörteile vorgibst und dann irgendwie die Anzeige einschränkst, dann hast du dich geschnitten. Das muss zur Laufzeit passieren. Wird in einer der beiden Combo-Boxen die Auswahl verändert, dann lässt du dir in deinem Programm eine Funktion aufrufen. In dieser Funktion stellst du die aktuelle Auswahl in beiden Combo-Boxen fest, kommst dann auf irgendeine Art und Weise (zb Auswahl aus Datenbank) mit den jeweils gültigen möglichen Zubehörteilen hoch, die du dann fein säuberlich in die vorher gelöschte Listbox neu reinschreibst. > Im nächsten Schritt sollen dann die ganzen Auswahlen in einer zweiten > Form als Textbox übernommen werden. Ist egal. Was du mit der Liste der Zubehörteile machst, ist deine Sache. Ob du die in einer Listbox anzeigst oder auf eine Datei schreibst, das entscheidest du als Programmierer, in dem du das eben entsprechend programmierst. D.h. in deinem Beispiel ist nicht die Listbox das wesentliche, sondern die Frage: wie komme ich eigentlich zu meiner Liste von Zubehörteilen. Diese Frage hat erst mal nichts mit einer Listbox zu tun, sondern ist eine reine Frage der Datenhaltung. Da musst du halt jetzt mal überlegen, wie du das gestalten willst: Welche Automarken gibt es? Welche Modelle gibt es? Welche Zubehörteile sind von Automarke und Modell abhängig? Die unflexibelste Lösung ist es, diese Daten samt ihren Zusammenhängen direkt ins Programm einzuprogrammieren. Die flexibelste Lösung ist es, dafür zb eine Datenbank zu benutzen. D.h. die Daten, mit denen dein Programm operiert kommen von extern. Ob das jetzt eine ausgewachsene Datenbank ist oder du die sonst irgendwie extern beschreibst, hängt nur noch von deinem Können in der Programmierung ab. Davon losgelöst ist aber (oder besser gesagt: sollte es sein) die Frage: wie präsentiere ich meinem Benutzer die Daten - das ist eine ganz andere Geschichte und die Erfahrung zeigt: wenn man das alles zusehr miteinander vermengt, dann kommt da selten etwas gescheites dabei raus.
:
Bearbeitet durch User
Da macht man sich einfach ein Zusatzfeld, egal jetzt ob Datenbank oder interne ZubehörListe. In dieses Zusatzfeld schreibst du für jeden Zubehör-Artikel einen Vermerk, z.B. A für Audi, V für Volkswagen, M für Mercedes. Statt Buchstaben kannst du dir auch Zahlen ausdenken. Je nachdem was in der Combobox ausgewählt wurde, kannst du schon als Vorselektierung die richtigen Artikel rausgreifen. Soll heißen : Wenn z.B. Mercedes in der Combobox gewählt wurde, kannst du alle Artikel, die ein M im Zusatzfeld haben, schon mal abgreifen. Das ganze Spielchen kann man auch weiter treiben, indem man auch noch den Typ entweder im selben Zusatzfeld oder ein extra Feld abfragt. V = Volkswagen G = Golf Da gibt es viele Möglichkeiten.
Hallo und Danke euch beiden für die antworten. Könntest du das bitte für einen laien beschreiben wie das mit der Auswahl auf der Code seite ausschaut? Ich hatte mir das so vorgestellt: private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedItem == "Konica_Minolta" & comboBox2.SelectedItem == "SW-Modell") checkedListBox1.Visible = true; } private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) { checkedListBox1.Visible = false; } Aber das funktioniert nicht ...
Christoph Johannsen schrieb: > private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) > { > if (comboBox1.SelectedItem == "Konica_Minolta" & > comboBox2.SelectedItem == "SW-Modell") > checkedListBox1.Visible = true; > > } > > private void checkedListBox1_SelectedIndexChanged(object sender, > EventArgs e) > { > checkedListBox1.Visible = false; > } > > Aber das funktioniert nicht ... Ich kann zwar jetzt kein C#, aber rein programmiertechnisch würde ich da nicht an Klammern sparen : Also eher so : if (comboBox1.SelectedItem == "Konica_Minolta") & (comboBox2.SelectedItem == "SW-Modell") usw.
Ohne Klammern bleibt die Fehlerbox sauber, sobald ich klammern hinzufüge gibt's Probleme ... Also daran kann es wohl nicht liegen ..
Kommt denn ein Fehler oder passiert gar nichts ? Am obigen Code kann man das ja nicht erkennen. Wenn kein Ergebnis kommt, vermute ich mal, daß es den Artikel gar nicht gibt, bzw. falsch geschrieben wurde. PS: Zu deinem ersten Problem : In Firmen wird sowas über Warengruppen geregelt. In deinem Fall mußt du nur etwas umdenken.
Ich steh leider hart auf dem Schlau ... Ich hab gleich nachdem er die Form erstellt hat gesagt er soll die checkedlistbox unsichtbar machen, das funktioniert auch. Aber selbst wenn dann beide Werte aus den Comboboxen stimmen zeigt er die checkedlistbox nicht wieder an.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.