Random

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von GimpTutWorks.

    Hiiii, Ich hab ein Problem und zwar ich möchte ein Zeugnis Bot Bauen wie die eine App von Facebook (facebook.com/pages/Zeugnis/347…49?sk=app_370878506261489) Aber er will net so wie ich es will, ich glaub der code ist auch Falsch weil mit Random kenn ich mich noch nicht so gut aus und hab es einfer mal so geschrieben.. naya vllt könnt hr mir ja sagen why es net geht :D

    Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Ausreichend As New Random
    3. Dim Gut As New Random
    4. Dim Befriedigend As New Random
    5. Dim Ungenügend As New Random
    6. Dim Mangelhaft As New Random
    7. Dim SehrGut As New Random
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. TextBox1.Text &= Gut.Next("Gut")
    10. TextBox2.Text &= Ausreichend.Next("Ausreichend")
    11. TextBox3.Text &= Befriedigend.Next("Befriedigend")
    12. TextBox4.Text &= Ungenügend.Next("Ungenügend")
    13. TextBox5.Text &= Mangelhaft.Next("Mangelhaft")
    14. TextBox6.Text &= SehrGut.Next("SehrGut")
    15. End Sub
    16. End Class


    MfG
    Erstmal: Ein Random-Objekt für den ganzen Ablauf reicht.
    Dann: Random.Next gibt dir Zahlen zurück, mit denen du z.B. ein Item aus einem Array auswählen kannst.
    Beispiel:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Rndm As New Random
    3. Dim Noten() As String = { "Gut", "Ausreichend", "Befriedigend", "Ungenügend", "Mangelhaft", "Sehr gut" }
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. MessageBox.Show(Noten(Rndm.Next(0, Noten.Length)))
    6. End Sub
    7. End Class
    Was genau du machen willst, konnte ich dem Code nicht entnehmen, aber mein Code sollte dir zumindest helfen, es zu verstehen.
    Dann weis einfach jeder TextBox eine zufällige Note zu:

    VB.NET-Quellcode

    1. TextBox1.Text = Noten(Rndm.Next(0, Noten.Length))
    2. TextBox2.Text = Noten(Rndm.Next(0, Noten.Length))
    3. ' ...
    Naja statt jede Textbox einzeln aufzuschreiben kannste das ganze mit TypeOf verkürzen.

    Hier mal der gesamte Code:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim Noten() As String = {"Sehr gut", "Gut", "Befriedigend", "Ausreichend", "Mangelhaft", "Ungenügend"}
    3. Dim rndm As New Random
    4. Dim Fach As Control
    5. For Each Fach In Me.Controls
    6. If TypeOf Fach Is TextBox Then
    7. Fach.Text = Noten(rndm.Next(0, Noten.Length))
    8. End If
    9. Next
    10. End Sub
    Macht das ganze natürlich auch wieder kürzer, aber auch mehr oder weniger schwerer zu verstehen.
    (Je nach dem wie so der Wissensstand ist)
    Fakt ist: Keiner der genannten Lösungswege ist Falsch und ich denke, dass das der wichtigste Punkt ist.

    MfG GTW