PROBLEM BEIM AUSLESEN DER ITEMS EINER LISTBOX

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    PROBLEM BEIM AUSLESEN DER ITEMS EINER LISTBOX

    Hallo,

    Ich bin im Moment dabei ein kleines "spiel" zu Programmieren und bin aus ein Problem gestoßen, ich habe bereits einen Zufallsgenerator in Verbindung mit einer listbox programmiert, welcher mir zahlen von 1-5 ausspuckt. Woran ich jedoch gescheitert bin ist folgendes : ich möchte, dass wenn zum beispiel die zahl 1 rauskommt ein bestimmter ton abgespielt wird (wie man den abspielen lässt weiß ich) das problem hierbei ist, wenn ich den code :

    If ListBox2.GetItemText(1) Then
    My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\1.wav")
    Button2.Enabled = True
    End If

    If ListBox2.GetItemText(2) Then
    My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\2.wav")
    Button2.Enabled = True
    End If

    If ListBox2.GetItemText(3) Then
    My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\3.wav")
    Button2.Enabled = True
    End If

    If ListBox2.GetItemText(4) Then
    My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\4.wav")
    Button2.Enabled = True
    End If

    If ListBox2.GetItemText(5) Then
    My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\5.wav")
    Button2.Enabled = True

    nehme wird egal welche zahl rauskommt immer der gleiche ton abgespielt...

    könnte mir da wer helfen? :)
    Rosen sind rot, Döner ist lecker, Koaxialkabelverbindungsstecker!
    1. Willkommen im Forum.
    2. Bitte CodeTags benutzen.
    3. Komplettgroßschreibung = Schreien. Im Titel etwas ungünstig
    4. Was erhoffst Du Dir vom Code If ListBox2.GetItemText(0) Then? GetItemText gibt Dir einen Text wieder. Also könnte man ins Deutsche übersetzen: "Wenn Text vom 1. Item dann ...". Du siehst, dass die Übersetzung keinen Sinn ergibt, weil der Code an den Stellen keinen Sinn ergibt. Was zu 5. führt.
    5. Option Strict On nicht vergessen. Damit wird schon zur Designzeit auf den Fehler hingewiesen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Klarer Fall von Unkenntnis von Datentypen.
    Wichtigster Hinweis: Visual Studio - Empfohlene Einstellungen
    Dann sagt dir der Compiler, was du falsch gemacht hast.

    Nämlich Datentypen nicht berücksichtigt. Was soll denn das bedeuten?

    VB.NET-Quellcode

    1. If ListBox2.GetItemText(1) Then
    Zu deutsch: "Wenn Listbox2-Text, dann..."
    Der Vergleich ist unvollständig - womit soll denn der Text verglichen werden?

    Wie gesagt: Neben der Vervollständigung des Vergleiches - also konkretem BugFix - ist Visual Studio - Empfohlene Einstellungen das wichtigste.
    Weil VisualStudio wird mit Voreinstellungen ausgeliefert, die es nahezu unmöglich machen, objektorientiert programmieren zu lernen.
    Also muss jeder Einsteiger zuerst mal Visual Studio - Empfohlene Einstellungen bewältigen - früher oder später, und früher ist besser.

    Edit: Mist - 2min zu spät ;)
    Guten Abend,
    Ich konnte den Code jetzt nicht testen aber es müsste klappen.

    VB.NET-Quellcode

    1. ​If ListBox2.Items(1).ToString = "1" Then
    2. My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\1.wav")
    3. Button2.Enabled = True
    4. End If


    Du musst immer bei einer if abfrage eine Bedingung stellen die nur Wahr oder Falsch ergeben kann. Bei dir hast du nur den Text ausgelesen.
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down

    Toni03 schrieb:

    Guten Abend,
    Ich konnte den Code jetzt nicht testen aber es müsste klappen.

    VB.NET-Quellcode

    1. If ListBox2.Items(1).ToString = "1" Then
    2. My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\1.wav")
    3. Button2.Enabled = True
    4. End If


    Du musst immer bei einer if abfrage eine Bedingung stellen die nur Wahr oder Falsch ergeben kann. Bei dir hast du nur den Text ausgelesen.


    Danke für die zahlreichen antworten, Tipps und Verbesserungsvorschläge. Ich werde das im Laufe des Tages mal ausprobieren und melde mich dann wiede
    Rosen sind rot, Döner ist lecker, Koaxialkabelverbindungsstecker!
    habe ich ausprobiert, doch dan kommt bei mir die fehlermeldung : System.ArgumentOutOfRangeException: "InvalidArgument=Value mit dem Wert 1 ist für index ungültig.
    Parametername: index"
    Rosen sind rot, Döner ist lecker, Koaxialkabelverbindungsstecker!

    Jr112 schrieb:


    Hi,Jr112

    Ich glaube ich habe dein Problem gelöst.
    Du kannst auch gerne auf meinem YouTube Kanal vorbeischauen
    :) Youtube - DevDuo


    VB.NET-Quellcode

    1. If ListBox1.Items.Contains("1") Then
    2. My.Computer.Audio.Play("C:\WindowsApplication112\Audios\Einsatz Durchsagen\1.wav")
    3. Button2.Enabled = True
    4. End If


    Ich hoffe ich konnte dir helfen :thumbup: youtube.com/channel/UCBkGHOX1Uo5R3HOObcfXV4w

    Jr112 schrieb:

    doch dan kommt bei mir die fehlermeldung
    Wo ist der Code zur Fehlermeldung?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hier sind soviele Verstöße gegen die Forumregeln zu finden, dass ich den Thread jetzt schließen werde.

    @Jr112 Achte bei den nächsten Threads auf unsere Regeln, einige davon sind dir im ersten Antwortpost schon nahegebracht worden.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum