Quiz

  • VB.NET

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

    Jetzt verstehe ich erst, wie du das meinst. Lege entweder eine neue Klasse an oder greife immer auf das num-Objekt, das du in einem statischen Kontext deklarierst, zu.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Static num As Integer = 0
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. If RadioButton1.Checked Then
    5. num += 1
    6. Form3.Label1.Text = num.ToString()
    7. End If
    8. Form2.Show()
    9. Hide()
    10. End Sub
    11. End Class


    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If RadioButton1.Checked Then
    4. Form1.num += 1
    5. Form3.Label1.Text = num.ToString()
    6. End If
    7. Form3.Show()
    8. Hide()
    9. End Sub
    10. End Class

    Schau dir am besten noch an, wozu man Static benutzen kann und suche nach jeglichen Dingen, die du nicht verstehst oder frag hier nach.

    Gruß
    ~blaze~

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ () aus folgendem Grund: C&P-Fehler ausgebessert

    Gib bitte Deinem Projekt Option Strict On.
    Dein Code ist ein klassisches Beispiel für das Nicht-Verstehen von Klassen und Instanzen (das gilt nicht nur für Dich!).
    Das sind Grundlagen, und das habe ich schon mehrfach hier geschrieben.

    VB.NET-Quellcode

    1. 'Form3.Label1.Text = num
    2. Form3.Label1.Text = num.ToString
    3. Form2.Show()

    Was ist Form2, was ist Form3?
    Leider lässt BV.NET diesen (Alt-)Scheiß zu.
    Zunächst musst Du Dir darüber im Klaren sein, dass es modale und Nichtmodale Dialoge (Form-Aufrufe) gibt.
    Mach Dir ein kleines Testprojekt mit 2 Button im Hauptfenster und einem weiteren Fenster.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private _dlg As Form2
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. _dlg = New Form2
    5. _dlg.Show() ' nicht modal
    6. End Sub
    7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    8. Using dlg As New Form2
    9. dlg.ShowDialog() ' modal
    10. End Using
    11. End Sub
    12. End Class

    Wenn Du auf Button 1 klickst, erscheint das Fenster 2 und Du kannst Button 2 drücken, worauf ein weiteres Fenster 2 erscheint.
    Versuche nun, im Fenster 2 einen Wert zu setzen und hochzuzählen, vom Hauptfenster aus und von Fenster 2 aus.
    Überlege Dir, weshalb

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Using dlg As New Form2
    3. dlg.Show()
    4. End Using
    5. End Sub
    nicht funktioniert.
    Spiele nun mit diesem kleinen Programm und verstehe, was eine Instanz ist.
    Wenn Du verstanden hast, warum bei mir nicht Form2.Show() steht, sollte eines Deiner Probleme gelöst sein.
    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!