Wert einer Variable als Labelnamen (Text)

  • VB.NET

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

    Wert einer Variable als Labelnamen (Text)

    Hallo,
    bisher habe ich nur erfahrung mit VBA und bin gerade dabei mich in VB.net einzuarbeiten. Folgendes Problem habe ich: Ich habe in der einen Form einen Button. Wenn ich auf den Button klicke, dann soll eine neue Form erscheinen in der ein Wert einer Variable als Labelnamen verwendet werden soll. Das aufrufen der neuen Form habe ich soweit hinbekommen, nur leider wird beim Labelnamen garnichts angezeigt. Ich habe zunächst eine Klasse erstellt:

    Public Class GlobaleVariablen
    Public Shared sp1 As String
    End Class

    Anschließen habe in der Variable im ersten Formular einen Wert zugewiesen sobald der Button geklickt wurde
    Public Sub cmd_Bestaetigen_Click(sender As Object, e As EventArgs) Handles cmd_Bestaetigen.Click

    Dim frm_Frage As New frm_Frage()
    frm_Namen.ActiveForm.Hide()
    frm_Formular2.ShowDialog()
    GlobaleVariablen.sp1 = "Test"
    End Sub

    So nun wollte ich in Formular2 im Labelfeld den Wert der Variable (sp1) verwenden:
    Public Sub frm_Bereit_HandleCreated(sender As Object, e As EventArgs) Handles Me.Load
    Me.lblName.Text = GlobaleVariablen.sp1
    End Sub

    Es wird nur leider nichts im Labelfeld angezeigt! Was mache ich falsch ?

    Latene schrieb:

    VB.NET-Quellcode

    1. frm_Formular2.ShowDialog()
    2. GlobaleVariablen.sp1 = "Test"
    Hättest Du auf die 2. Zeile einen Haltepunkt gesetzt (Debuggen: Gugst Du hier) wäre Dein Problem gelöst, bevor Du deine rage geschrieben hättest.
    .ShowDialog() ruft einen modalen Dialog auf, der Code wird erst dann fortgesetzt, wenn der Dialog geschlossen wird.
    Also
    schlechte Variante: Tausch diese beiden Zeilen.
    bessere Variante: Gib der 2. Form eine Property, in der Du den String überträgst und das Label befüllst, bevor Du ShowDialog() aufrufst:

    VB.NET-Quellcode

    1. Public WriteOnly Property LabelName As String
    2. Set(value As String)
    3. Me.Label1.Text = value
    4. End Set
    5. End Property

    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 Hier hättest Du auf den winzigen Unterschied zwischen .ShowDialog() und .Show() eingehen müssen.
    @Latene Modale und nicht modale Dialoge. Gugst Du hier.
    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!