Funktion für Form einblenden, nach Form.hide()

  • VB.NET

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

    Funktion für Form einblenden, nach Form.hide()

    Hallo,

    Ich finde keine "Private Sub" die das Wiedereinblenden der Form überprüft, nachdem ich sie mit Form.Hide() versteckt habe.
    Habe schon einiges ausprobiert. Nach 1 Stunde probieren bin ich auf dieses Forum gestoßen.
    Würde mich freuen wenn ihr mir helfen könntet ;)

    Gruß Volcom
    Wenn eine Form das erste mal aufgerufen wird, dann kann man ja dies so überprüfen:

    VB.NET-Quellcode

    1. Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. End Sub


    Das geht aber wiegesagt nur beim ersten Aufruf (Oder wenn man die Form mit form1.close() schließt)
    Ich verstecke aber die Form mit Form1.Hide()
    Und wenn sie dann wieder aufgerufen wird möchte ich gerne eine Text Datei laden. Jedoch weiß ich nicht wie das geht.
    definiere

    Volcom schrieb:

    die das Wiedereinblenden der Form überprüft
    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!

    Leseratte schrieb:

    VB.NET-Quellcode

    1. Private Sub Me_Shown (ByVal sender as system.object, byval e as system.eventargs) Handles Me.Shown
    2. 'Something
    3. End Sub

    Wird immer aufgerufen wenn sich die Form öffnet, also auch beim Programmstart!

    Das geht auch nicht.
    Ich bin noch nicht so erfahren, deshalb weiß ich nicht wie ich mich ausdrücken muss damit ihr das versteht.

    Hier mal ein Beispiel:

    Man hat 2 Formen zur Verfügung.
    Auf jeder Form ist ein Button.
    Wenn man auf einen Button klickt, dann passiert folgendes:

    VB.NET-Quellcode

    1. Form2.Show()
    2. Speichern()
    3. Me.Hide()


    Dann wird die zweite Form geöffnet und das gespeicherte soll wieder geladen werden, damit die Variablen auch auf der zweiten Form aktuell sind.
    Und ich finde die Funktion nicht, die merkt dass die zweite Form geladen wird.
    Folgende Funktion..

    VB.NET-Quellcode

    1. Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub

    ..funktioniert nur beim ersten Öffnen der Form. Wenn diese Form dann mit Me.Hide versteckt und später mit Form.Shown wieder aufgerufen wird, dann wird das in "form1_Load" nicht ausgeführt.
    Und form1_Shown, was am logischten klingt führt dies auch nicht aus.
    Suchst Du so was:

    VB.NET-Quellcode

    1. If Me.Visible Then
    2. MessageBox.Show("Visible")
    3. Else
    4. MessageBox.Show("not Visible")
    5. End If
    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!

    Volcom schrieb:

    Dann wird die zweite Form geöffnet und das gespeicherte soll wieder geladen werden, damit die Variablen auch auf der zweiten Form aktuell sind.
    ?(
    Willst du lediglich erreichen, dass Variablen aus Form1 auch in Form2 verfügbar sind? Dann ist dein Weg über eine Textdatei ein Holzweg. Lege statt dessen in deiner Form2 Properties an, die public deklariert sind. auf die kannst du aus Form1 zugreifen, um deine Daten zu übergeben. In Form2 stellst du dann die Properties in deinen Textboxen dar.
    Du solltest vielleicht auch mal dieses kostenlose Openbook lesen und durcharbeiten. da kannst du alle notwendigen Grundlagen lernen.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Moin @Vatter:, Dein Vorschlag ist allerdings nicht ganz konform mit der angestrebten Trennung von GUI und Daten.
    @Volcom: Lege Dir eine Klasse an, in der die Daten gehalten werden. Die kannst Du dann bspw. als Property von allen Formen wo auch immer abrufen.
    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!

    Vatter schrieb:

    Willst du lediglich erreichen, dass Variablen aus Form1 auch in Form2 verfügbar sind? Dann ist dein Weg über eine Textdatei ein Holzweg. Lege statt dessen in deiner Form2 Properties an, die public deklariert sind. auf die kannst du aus Form1 zugreifen, um deine Daten zu übergeben. In Form2 stellst du dann die Properties in deinen Textboxen dar.
    Du solltest vielleicht auch mal dieses kostenlose Openbook lesen und durcharbeiten. da kannst du alle notwendigen Grundlagen lernen.

    Fiel Fergnügen

    Vatter
    Genau. Die 650 Seiten PDF Datei erschlägt mich jedoch förmlich. Aber dann sich ich eben aus 650 Seiten das raus was ich brauch... auch wenn ich nicht weiß unter was es im Inhaltsverzeichnis zu finden ist..^^

    //Edit:

    Wie kann man aus einer Public Class Variablen in einer anderen Public Class verwenden?

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

    Sieh Dir mal das an:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class MyVars
    2. Private _Value1 As Integer
    3. Public Property Value1 As Integer
    4. Get
    5. Return _Value1
    6. End Get
    7. Set(value As Integer)
    8. _Value1 = value
    9. End Set
    10. End Property
    11. End Class
    12. ' unter VB2010:
    13. ' Public Property Value1 As Integer

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private _MyVars As New MyVars ' _MyVars verwenden
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. Using dlg As New Form2
    5. dlg.setVars(_MyVars)
    6. dlg.ShowDialog()
    7. End Using
    8. End Sub
    9. End Class

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private _MyVars As MyVars
    3. Public Sub setVars(Vars As MyVars)
    4. _MyVars = Vars
    5. ' _MyVars verwenden
    6. End Sub
    7. End Class
    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!