Me.Refresh() -> Alternative?

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von JackCimberly.

    Me.Refresh() -> Alternative?

    Hi Gemeinde.

    Habe eine Form, die in ein Panel geladen wird.
    Die Form prüft, ob ein Ordner vorhanden ist. Klappt soweit.
    Benenne ich aber der Ordner um und klicke auf den Refresh-Button, dann bleibt das so.

    Ich sehe aber, dass sich da was tut mit

    VB.NET-Quellcode

    1. Me.Refresh()
    ... flackert leicht und schnell.
    Aber der Wert ändert sich nicht.

    Mach ich hingegen erneut F5, dann wird mir das richtig angezeigt.

    VB.NET-Quellcode

    1. Application.Restart
    kommt auch nicht in Frage ...

    Jemand eine Lösung parat?
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Doch doch .... das klappt ... ;)

    Existiert der Ordner C:\test\ und ich F5 starte, dann gibt der mir "Ja!" aus.
    Beende ich F5 und benenne ich den Ordner um, und starte erneut F5, dann zeigt der mir "Nein!" an -> also richtig!
    Mit dem Refresh-Button ned ...

    VB.NET-Quellcode

    1. Dim backup_folder As String = "C:\test\"
    2. If IO.Directory.Exists(backup_folder) Then
    3. Label_backup_status.ForeColor = System.Drawing.Color.Green
    4. Label_backup_status.Text = "Ja!"
    5. Else
    6. Label_backup_status.ForeColor = System.Drawing.Color.Red
    7. Label_backup_status.Text = "Nein!"
    8. btn_delete_backupfolder.Visible = False 'blendet Lösch-Button aus
    9. End If


    Aber klicke ich auf den Refresh-Button, dann müsste der doch die Form erneut laden. Sprich, alles wird neu ausgeführt. Also eine erneute Abfrage. Oder?
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Autsch ;(

    Wenn Du in der IDE F5 drückst, so wird Deine Anwendung neu gestartet, also auch das Form.Load Event ( wenn Dein Code da drin ist) neu ausgeführt.

    Mit Me.Refresh wird Deine Form nur neu gezeichnet, dabei aber das Load Event nicht wieder benutzt ...
    Ah ja ... Danke für die Aufklärung.

    Der FileSystemWatcher schaut mir zu komliziert aus 8-)

    Aber hat man nicht die Möglichkeit, dass

    VB.NET-Quellcode

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


    mit dem Button-Click Ereignis

    VB.NET-Quellcode

    1. Private Sub btn_refresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_refresh.Click
    2. Me.Refresh()
    3. End Sub


    zu kombinieren?

    Sprich; btn_refresh_Click in den obigen Form-Load einzubinden?
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Hallo JackKimberly,

    Mit Me.Refresh wird Deine Form nur neu gezeichnet, dabei aber das Load Event nicht wieder benutzt ...

    für deinen Fall kannst du das Refresh vergessen.

    Tipp:
    Lies die Beiträge genauer, dann kommst du schneller ans Ziel.

    Gruss

    mikeb69
    So etwa:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. ABC()
    3. End Sub
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. ABC()
    6. End Sub
    7. Private Sub ABC()
    8. 'Dein Code
    9. End Sub


    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...