Supportnet / Forum / Anwendungen(Java,C++...)
Combobox - Inhalt abhängig von Vorauswahl
Frage
Hallo an alle,
in einem kleinen VB.NET Projekt (Software zum erstellen = Visual Basic 2005 ExpressEdition) habe ich folgendes Problem.
Ich habe zwei ComboBoxen erstellt, deren Inhalt in der zugehörigen Liste enthalten ist. Nun möchte ich aber, dass der Inhalt der ComboBox2 abhängig von dem Inhalt der ComboBox1 wird. Hier ein Beispiel. ComboBox1 ermöglicht dem User die Auswahl zwischen [i]Obst[/i] und [i]Gemüse[/i], was ich so eingetragen habe. Dann habe ich in die Liste zu ComboBox2 folgenden inhalt eingegeben:
[list]Apfel
Birne
Gurke
Tomate[/list]
Wenn der User nun jedoch in ComboBox1 [i]Obst[/i] wählt ist weiterhin alles, sprich Apfel, Birne, Gurke und Tomate in ComboBox2 wählbar. Ich suche nun nach dem Entsprechnenden Code-Schnipsel, der [b]geanu dann[/b] eintritt, wenn der User in ComboBox1 eine Auswahl getroffen hat. Mittels Code möchte ich dann die Liste der ComboBox1 so editieren, dass dort nur Apfel, Birne enthalten ist, wenn sich der User für [i]Obst [/i]in ComboBox1 entschieden hat.
Ich hoffe ich habe es nicht allzu kompliziert umschrieben.
Gruß Tex
Antwort 1 von balla
Hallo Tex
Dazu brauchst Du aber eiine entsprechende Zuordnung, oder Abhängigkeit. Bsp:
Obst - Apfel,Birne
Gemüse - Gurke,Tomate
Gruß balla
Dazu brauchst Du aber eiine entsprechende Zuordnung, oder Abhängigkeit. Bsp:
- obst 1
Gemüse 2
- Apfel 1
Birne 1
Gurke 2
Tomate 2
Obst - Apfel,Birne
Gemüse - Gurke,Tomate
Gruß balla
Antwort 2 von TeX
Sers für balla,
ich denke hiermit habe ich mir einen Fachmann geangelt. Habe schon des öfteren Beiträge deinerseits gelesen, die viel know-how erahnen ließen. Genug der schleimerei :-).
Wenn es denn so ist wie Du sagst, dann wäre es hilfreich wenn ich einen Code-Schnipsel zur Verfügung bekäme, den ich dann mit meinem wenigen Wissen über .NET mir meinen Ansprüchen hinbiegen kann.
Ich dachte es ist ausreichend die ComboBox2 mit ihrem Namen anzusprechen und in einer Private.Sub sowas ähnliches wie:
So in der Art hatte ich mir das vorgestellt, nur habe ich nicht genügend Programmierkenntnisse um es selbst auf die Reihe zu bekommen.
Gruß TeX
ich denke hiermit habe ich mir einen Fachmann geangelt. Habe schon des öfteren Beiträge deinerseits gelesen, die viel know-how erahnen ließen. Genug der schleimerei :-).
Wenn es denn so ist wie Du sagst, dann wäre es hilfreich wenn ich einen Code-Schnipsel zur Verfügung bekäme, den ich dann mit meinem wenigen Wissen über .NET mir meinen Ansprüchen hinbiegen kann.
Ich dachte es ist ausreichend die ComboBox2 mit ihrem Namen anzusprechen und in einer Private.Sub sowas ähnliches wie:
Private Sub "Wenn in ComboBox1 eine Änderung erfolgt dann mache"
Select Case
"Auswahl in ComboBox1" = "Obst"
"Ändere Liste der ComboBox2 in ...
Case
"Auswahl in ComboBox1" = "Gemüse"
"Ändere Liste der ComboBox2 in ...
End Select
End SubSo in der Art hatte ich mir das vorgestellt, nur habe ich nicht genügend Programmierkenntnisse um es selbst auf die Reihe zu bekommen.
Gruß TeX
Antwort 3 von User
Ich hab´ leider keine Ahnung wie das mit dem neumodischen Zeugs(.net) so geht, aber unter vb6 könnte das so aussehen:
Gruß User
Option Explicit
Option Base 1
Dim sorte() As String, Waren() As String
Private Sub Combo1_Click()
Dim i%, sorten%, Ware$
Ware = Combo1.Text
Combo2.Clear
For i = 1 To UBound(sorte)
Rem 1=Obst, 2=Gemüse
If Ware = sorte(i, 2) Then sorten = sorte(i, 1)
Next
For i = 1 To UBound(Waren)
If Waren(i, 1) = sorten Then Combo2.AddItem Waren(i, 2)
Next
End Sub
Private Sub Form_Load()
Dim i%
ReDim sorte(2, 3), Waren(8, 2)
sorte(1, 1) = "1": sorte(1, 2) = "Obst"
sorte(2, 1) = "2": sorte(2, 2) = "Gemüse"
Rem Arrays laden
Waren(1, 1) = "1": Waren(1, 2) = "Apfel"
Waren(2, 1) = "1": Waren(2, 2) = "Birne"
Waren(3, 1) = "2": Waren(3, 2) = "Gurke"
Waren(4, 1) = "2": Waren(4, 2) = "Tomate"
Waren(5, 1) = "2": Waren(5, 2) = "Sellerie"
Waren(6, 1) = "1": Waren(6, 2) = "Banane"
Waren(7, 1) = "2": Waren(7, 2) = "Trolle"
Waren(8, 1) = "1": Waren(8, 2) = "XYZ"
Combo1.Clear
Rem Combo1 füllen
For i = 1 To UBound(sorte)
Combo1.AddItem sorte(i, 2)
Next
End SubGruß User
Antwort 4 von TeX
Danke an AW3 und ich werde mal sehen wie ich damit voran komme.
Gruß TeX
Gruß TeX
Antwort 5 von TeX
So, ich habe mein Problem folgendermaßen in den Griff bekommen (Falls es jemanden noch einmal ähnlich ergehen sollte)
Nach einem Doppelklick auf die ComboBox1 wird automatisch eine Prozedur erstellt, die eintritt, wenn der Inhalt dieser ComboBox1 vom User geändert wird. Der ensprechende Code-Schnipsel (nachfolgend aufgeführt) fragt dann lediglich in einer Select Case Anweisung nach, was denn der derzeitige Inhalt der ComboBox1 ist, löscht den aufgelisteten Inhalt von ComboBox2 und passt den Inhalt der ComboBox2 dann entsprechend an.
Code:
Gruß TeX
Nach einem Doppelklick auf die ComboBox1 wird automatisch eine Prozedur erstellt, die eintritt, wenn der Inhalt dieser ComboBox1 vom User geändert wird. Der ensprechende Code-Schnipsel (nachfolgend aufgeführt) fragt dann lediglich in einer Select Case Anweisung nach, was denn der derzeitige Inhalt der ComboBox1 ist, löscht den aufgelisteten Inhalt von ComboBox2 und passt den Inhalt der ComboBox2 dann entsprechend an.
Code:
Private Sub
COMBOX1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles COMBOX1.SelectedIndexChanged
COMBOX2.Items.Clear()
Select Case COMBOX1.Text
Case "Obst"
COMBOX1.Items.Insert(0, "Apfel")
Case "Gemüse"
COMBOX1.Items.Insert(0, "Tomate")
End Select
End SubGruß TeX
Antwort 6 von berni-raudaschl
Hallo,
da ich gerade am Anfang mit VB bin,
möchte ich euch fragen wenn ich diesen Code auf 4 Comboboxes erweitere wie ich da vorgehe!!!!
könnt ihr mir da was erweitern!??
wäre nett!!!
zb: Sorte:Ware:Regal:PlatzNR.
grüße, Berni
da ich gerade am Anfang mit VB bin,
möchte ich euch fragen wenn ich diesen Code auf 4 Comboboxes erweitere wie ich da vorgehe!!!!
könnt ihr mir da was erweitern!??
wäre nett!!!
zb: Sorte:Ware:Regal:PlatzNR.
grüße, Berni

