Verwendung der if-then-Bedingung bei Combobox

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von ProggerFrog.

    Verwendung der if-then-Bedingung bei Combobox

    Hallo liebe Forumsmitglieder!

    Ich möchte in meinem Programm gerne die if-then-Bedingung verwenden.
    Hierbei soll, wenn in der Combobox aus der Auswahlliste ein bestimmter Text ausgewählt wird, dass es dann in der nachfolgenden Textbox einen Vordruck anzeigt.
    Dieses Programm ist von mir für ein Spiel entwickelt.
    Nun soll, wenn in der Combobox2 der Funkrufname "1/23/1" oder der Funkrufname "1/24/1" ausgewählt ist, in der nächsten Textbox, also Textbox2, der Text "AT: ; WT: ; ST:" angezeigt werden.
    Hat jemand eine Ahnung wie es richtig funktioniert?

    Mein Versuch war:
    TextBox2.Text = Combobox2.Text IF ComboBox2.Text = "1/23/1" OR "1/24/1" THEN TextBox2.Text = "AT: ; WT: ;ST:"

    Das hat aber keinen Text angezeigt, nachdem ich den besagten Text in der Combobox ausgewählt habe!

    Nun, wie mache ich das???

    Freue mich auf schnelle Antworten!
    Danke

    VB.NET-Quellcode

    1. TextBox2.Text = ComboBox2.Text
    2. If ComboBox2.Text = "1/23/1" OrElse ComboBox2.Text = "1/24/1" Then
    3. TextBox2.Text = "AT: ; WT: ;ST:"
    4. End If
    Sowas wie:

    VB.NET-Quellcode

    1. If a = b OrElse c Then
    funktioniert nicht. Das muss immer so geschrieben werden:

    VB.NET-Quellcode

    1. If a = b OrElse a = c Then


    Edit: ²Rinecamo: FFFFFFFFFFFFFFFFFFF
    Wenn ich das richtig verstehe, brauchst du das :

    VB.NET-Quellcode

    1. if combobox1.text = "dein Ausdruck" then 'hier dein Befehl, wenn der bestimmte Text ausgewählt istEnd if

    Oder mit select case...
    Edit: hayju war schneller =]

    Mfg
    also hab ich dass jetzt richtig verstanden?:

    Public Class Form1

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    If ComboBox1.Text = "1/23/1" Then TextBox1.Text = "AT:"
    End Sub
    End Class


    Wenn das richtig sein sollte, scheint es aber nicht zu funktionieren, weil wenn ich dann aus debuggen starten gehe, und nun in der combobox den text "1/23/1" auswähle, erscheint in der textbox nichts.
    wie mach ich dass jetzt wenn ich das bei mehreren angaben möchte?

    inetwa so?:
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.Text = "1/23/1" Or Else "1/24/1" Then TextBox1.Text = "AT:"
    End Sub

    und auch gleichgnoch die zweite frage:
    aus mehreren comboboxen soll nun nach diesem schema das formular entstehen, doch wenn bei combobox 1 der text übereinstimmt, und bei combobox 2 auch, dann überlagert ja der combobox2 text dann den der ersten. wie geht das da?
    Ich hab dir doch schon nen fertigen Code gepostet:

    VB.NET-Quellcode

    1. If ComboBox1.Text = "1/23/1" OrElse ComboBox1.Text = "1/24/1" Then
    2. TextBox1.Text = "AT:"
    3. End If

    Fix schrieb:

    und auch gleichgnoch die zweite frage:
    aus mehreren comboboxen soll nun nach diesem schema das formular entstehen, doch wenn bei combobox 1 der text übereinstimmt, und bei combobox 2 auch, dann überlagert ja der combobox2 text dann den der ersten. wie geht das da?

    gibt es auch noch eine antwort auf meine 2. frage?
    Deine Anforderung zeigt mal wieder die Begrenztheit des Ansatzes auf, bei dem man in Controlboxen und Textboxen drin rumhühnert.

    Deine Anforderung ist in der Datenverarbeitung ein Standard-Fall, genannt "Detail-View", vielleicht auch "JoinigView" (iwas mit viele Comboboxen - habichnicht ganz verstanden).
    Um sowas umzusetzen stehen geeignete Technologien bereit, du kannst dirjamal 4Views angugge, wasses so alles gibt (und's ist nichtmal vollständig).

    Wie gesagt: mit einem Ansatz, der in Steuerelementen herumhühnert kommt man da zu nix, sondern man muß die Angelegenheit unter Ausnutzung der Databinding-Technologie umsetzen.

    Zuallerallererst muß man sich aber ein Datenmodell ausdenken, also sich überlegen, wie die Dinge, die man darstellen will, eigentlich untereinander zusammenhängen.
    Son Datenmodell kann man dann 1:1 in ein typisiertes Dataset umsetzen, und daran kann man dann ein Gui binden, was die Präsentation so übernimmt, wie man sich vorstellt (gelegentlich sogar besser, als man sich vorstellen kann ;)).

    Sollen wir uns über dein Datenmodell unterhalten?
    Bisher erkennbar sind Datensätze, die eine Property "FunkrufName" bereitstellen, und eine weitere, die dann "WT:", "ST:" und sowas enthält - worum handelt es sich dabei?
    bei dem programm geht es darum, einsatzberichte erstellen zu können.
    dabei soll dann, wenn man einen funkrufnamen in der combobox1 auswählt ein vordruck in der textbox1 entstehen. jedoch gibt es auch die möglichkeit, mehrere beteiligte fahrzeuge auszuwählen, dann soll in der textbox1 auch ein vordruck für das fahrzeug 2 angezeigt werden. dieser soll jedoch den des ersten fahrzeuges nicht überlagern.

    also mal eion schema
    auswahl combobox1: "1/23/1"
    auswahl combobox2: "1/24/2"

    folgendes soll nun in der textbox1 angezeigt werden:
    1.Zeile: "AT: ;WT: ;ST:"
    2.Zeile: "AT: ;MA:"

    eines der beiden anzuzeigen ist für mich kein problem, jedoch wenn ich auch einen 2. vordruck anzeigen möchte, überlagert der zweite den ersten. dies ist mein derzeitiges problem und ich suche nun eine lösung!

    Also meine Frage an Euch:
    Wie kann ich mein hier beschriebenes Problem lösen?
    @Fix Versuch doch einfach mal was mit

    VB.NET-Quellcode

    1. textbox1.text = "Dein Text" & vbCrLf
    vbCrLf = Befehl zum erzwingen eines zeilen umbruches

    ich denke mal das du das so meinst mit deiner textbox.da du ja schreibst.

    Fix schrieb:

    also mal eion schema

    auswahl combobox1: "1/23/1"

    auswahl combobox2: "1/24/2"



    folgendes soll nun in der textbox1 angezeigt werden:

    1.Zeile: "AT: ;WT: ;ST:"

    2.Zeile: "AT: ;MA:"
    Sorry, aber ich muss ein wenig klugscheißen: vbCrLf = Carriage Return (ASCII-Code: 13) und Linefeed (ASCII-Code: 10)
    Das ist kein Befehl, sondern hängt einfach nur diese beiden Zeichen an den String dran. Das stellt dann einen Zeilenumbruch dar, wenn man sich die Datei z.B. mit dem Texteditor ansieht.

    Fix schrieb:

    bei dem programm geht es darum, einsatzberichte erstellen zu können.
    dabei soll dann, wenn man einen funkrufnamen in der combobox1 auswählt ein vordruck in der textbox1 entstehen. jedoch gibt es auch die möglichkeit, mehrere beteiligte fahrzeuge auszuwählen.

    folgendes soll nun in der textbox1 angezeigt werden:
    1.Zeile: "AT: ;WT: ;ST:"
    2.Zeile: "AT: ;MA:"

    Also meine Frage an Euch:
    Wie kann ich mein hier beschriebenes Problem lösen?
    Beschreib es genauer, und nachvollziehbar.

    Und versuch in deinem Denken mal wegzukommen von Textboxen und Comboboxen, sondern erklär mal, was diese Dinge bedeuten sollen.
    Also "1/23/1", "1/24/2" bedeuten Funkrufnamen. Was ist ein Funkrufname - ist das sowas wie ein Feuerwehr-Einsatz, der angefordert wurde? Warum heißen die so komisch?

    Was bedeutet "AT", "WT", "ST" - sind das Fahrzeuge? Mannschaften?
    in etwas so:

    VB.NET-Quellcode

    1. If Combo.SelectedText = "1/23/1" then textbox.text = "AT:"


    oder

    VB.NET-Quellcode

    1. Select Case ComboBox.SelectedIndex
    2. Case 0
    3. textbox.text = "AT"
    4. Case 1
    5. textbox.text = "WT: ;ST"
    6. End Select



    also mal eion schema
    auswahl combobox1: "1/23/1"
    auswahl combobox2: "1/24/2"

    folgendes soll nun in der textbox1 angezeigt werden:
    1.Zeile: "AT: ;WT: ;ST:"
    2.Zeile: "AT: ;MA:"


    in combbox click event:

    VB.NET-Quellcode

    1. Textbox.text = ComboBox.Text & vbCrlf & textbox.text

    nicht getestet !
    fertig !

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SystemUnknow“ ()