Supportnet Computer
Planet of Tech

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 1
    Gemüse 2
dann,
    Apfel 1
    Birne 1
    Gurke 2
    Tomate 2

oder mit separater Liste

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


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

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


Gruß User

Antwort 4 von TeX

Danke an AW3 und ich werde mal sehen wie ich damit voran komme.

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:

    
    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 Sub


Gruß 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