Visual Basic +Text per Button mehrfach ändern+

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Visual Basic +Text per Button mehrfach ändern+

    Hallo,

    Ich möchte in Microsoft Visual Basic 2010 gerne eine Art Generator erstellen.
    Ich habe einen Button der z.B Deutsche Automarken heißt in der Textbox darunter soll nach jedem mal wo ich auf den Button klicke eine andere Marke stehen. Nur wie mache ich das ?

    Bin sehr unerfahren und wäre über jede antwort dankbar.

    :)

    *Topic verschoben*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Das könntest du mal einfachst lösen indem du eine Textdatei mit den Herstellern füllst oder du hast die Liste direkt im Programm und befüllst sie über eine Textbox.
    Wenn du eine Datei wählst musst du diese mal Zeilenweise in eine Liste oder Array lesen und mit Random zeigst du dir jedesmal eine andere Automarke in einem Label an. Fertisch :D
    Wie gut sind deine Kenntnisse in VB.Net?
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    @Zulek so etwas wird hier im Forum ungern gemacht. Es sollte ja allen helfen und nicht nur dir.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Nummer as integar = 0
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Nummer += 1
    5. If Nummer = 1 Then textbox1.text = "BMW"
    6. If Nummer = 2 Then textbox1.text = "VW"
    7. 'usw.
    8. End Sub
    9. End Class


    Das ist zwar nicht die schönte möglichkeit aber für den Anfang reicht es.

    MfG
    Nun, das ist wirklich mehr als suboptimal.
    Ich empfehle, dass Du Dich erst mal in folgende Themen einliest:
    "Deppen-Einstellung" (SuFu benutzen).
    Sinnvolle Benennung von Controls.
    Arrays und generell Auflistungen (besonders List(Of T)).
    Die Random-Klasse.
    Je nach dem wie du es haben willst mit Dateizugriffen. Im Speziellen System.IO.File.Read(All)Lines.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    tut mir leid

    Kein Problem. Jeder hat mal angefangen ;)

    Noch als kleine Erklärung:

    Die von ErfinderDesRades immer so nett genannte "Deppen-Einstellung" ist bei Visual Basic standardmäßig so drin. Das macht es für Umsteiger von VB6 zwar einfacher, für Einsteiger aber umso schwerer, da diese den Umgang mit Datentypen und dem .NET-Framework erst üben müssen. Und die Deppen-Einstellung verhindert genau das.

    Dass man Controls sinnvolle Namen gibt ist ebenfalls wichtig. Sonst sieht Dein Programm irgendwann so aus: vb-paradise.de/index.php/Thread/?postID=735398#post735398
    Also Namen wie TextBox1 verwenden wir im Forum nur, weil sie vom Designer so Standardmäßig generiert werden. Also wenn man nur schnell zeigen will, wie etwas vom Prinzip her funktioniert, dann machen wir uns im Forum bei kurzen Codeschnipseln selten die Mühe, sinnvolle Namen für Controls zu erfinden, denn im Normalfall kann man aus dem Code erkennen, wofür das Control da ist.

    Und die anderen drei Sachen sind Grundlagen, die Du für diese Aufgabe brauchen kannst.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Du brauchst 2 buttons und eine textbox

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim automarken As New List(Of String)
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. automarken.Add(TextBox1.Text)
    5. End Sub
    6. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    7. For Each item In automarken
    8. MessageBox.Show(item)
    9. Next
    10. End Sub
    11. End Class

    Hier könnte meine Signatur stehen.
    @mox
    Erstens solltest Du Zulek nicht einfach Code hinwerfen. Lass ihn/sie selbst überlegen, denn dadurch lernt man.
    Zweitens macht der Code auch nicht, was er soll. Es soll nicht jede Automarke in Reihenfolge per MessageBox angezeigt werden, sondern es soll jedes Mal eine zufällig ausgewählte Automarke darunter angezeigt werden.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Er soll sich den Code anschauen, dadurch lernt er auch.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim automarken As New List(Of String)
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. automarken.Add(TextBox1.Text)
    5. TextBox1.Text = ""
    6. Label1.Text = automarken.Count
    7. End Sub
    8. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    9. Dim rnd As New Random
    10. Dim rndint As Integer = rnd.Next(0, automarken.Count)
    11. MessageBox.Show(automarken(rndint).ToString)
    12. End Sub
    13. End Class

    1 textbox, 2 buttons, 1 label

    Hier könnte meine Signatur stehen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mox“ ()

    Bist Du auch bereit zu lernen?

    mox schrieb:

    VB.NET-Quellcode

    1. Dim rnd As New Random
    Was ist hier falsch?
    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!

    Luca schrieb:

    Ich würde das so machen
    Ist genau so falsch. :/
    Weitere Vorschläge?
    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!
    @mox @Luca @MichaHo
    Auflösung:
    Die Variable vom Typ Random gehört nicht in die Prozedur, sondern in die Klasse und sie wird nur ein Mal instanziiert.
    Ansonsten sind die Werte nicht megr ganz zufällig, sondern vom Aufruftakt der jeweiligen Prozedur abhängig. 8o
    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, vielleicht löst das dein Problem, mit Zufalls Anzeige. Kannst du ja nach Bedarf ändern. Hat bei mir jedenfalls funktioniert,
    ich hab das aber schon sehr lange nicht mehr benutzt. Keine Ahnung ob das noch so aktuell ist.

    VB.NET-Quellcode

    1. [code]Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim wahl As Integer
    4. Randomize()
    5. wahl = Int(Rnd() * 21)
    6. Select Case wahl
    7. Case 0
    8. Text1.Text = "Schleichwerbung"
    9. Case 1
    10. Text1.Text = "Königreich"
    11. Case 2
    12. Text1.Text = "Freiheit"
    13. Case 3
    14. Text1.Text = "Magie"
    15. Case 4
    16. Text1.Text = "Welt"
    17. Case 5
    18. Text1.Text = "Eindruck"
    19. Case 6
    20. Text1.Text = "Essig"
    21. Case 7
    22. Text1.Text = "Partei"
    23. Case 8
    24. Text1.Text = "Übertreibung"
    25. Case 9
    26. Text1.Text = "Roman"
    27. Case 10
    28. Text1.Text = "Gedanke"
    29. Case 11
    30. Text1.Text = "Zuschauer"
    31. Case 12
    32. Text1.Text = "Klimaanlage"
    33. Case 13
    34. Text1.Text = "Innenhof"
    35. Case 14
    36. Text1.Text = "Gastgeber"
    37. Case 15
    38. Text1.Text = "Lebhaft"
    39. Case 16
    40. Text1.Text = "Besonders"
    41. Case 17
    42. Text1.Text = "Umbequem"
    43. Case 18
    44. Text1.Text = "Stern"
    45. Case 19
    46. Text1.Text = "Seefahrer"
    47. Case 20
    48. Text1.Text = "Tastatur"
    49. Case 21
    50. Text1.Text = "Welt"
    51. End Select
    52. End Sub[/code]

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Abe2012“ ()