Announcement

Collapse
No announcement yet.

Forms neu laden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Forms neu laden

    Guten Abend Entwickler-Forum,

    ich arbeite momentan an einer vb.net Anwendung, die mit einer Datenbank kommunizieren soll.


    Ich habe meine "Main"-Form, in welcher alle Daten der Datenbank aufgelistet werden. Über einen Menüpunkt kann man diese Daten in einer neuen Form ("Bearbeiten"-Form)auswählen und bearbeiten.

    Der Aufruf sieht so aus:
    [highlight=vbnet] Private Sub EditModuleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EditModuleToolStripMenuItem.Click
    Dim edit As New Modul_bearbeiten '= ein Windows Forms
    edit.Show()
    End Sub[/highlight]


    Wenn man Daten dort bearbeitet hat, sollen diese natürlich sofort geändert erscheinen.



    Momentan hab ich es geschafft, das "Bearbeiten"-Form nach Klick auf den Bearbeiten-Button neu zu laden, und zwar mit
    [highlight=vb.net]Me.OnLoad(e)[/highlight]
    Weder Me.Invalidate() noch Me.Refresh() brachten den gewünschten Effekt
    (Ich dachte immer die erzwingen das komplette neu laden)


    Ich habe nun zwei Fragen
    • Gibt es einen ''schöneren'' Aufruf (da 'e' ja eigentlich keinerlei relevante Informationen enthält)
    • Wie schaffe ich es, das "Main"-Form neu zu laden?


    Für jegliche Ratschläge/Kritik/Verbesserungsvorschläge wäre ich sehr dankbar.
    Sollte meine Beschreibung unklar sein, kann ich auch gerne noch Screenshots machen.

    mit freundlichen Grüßen
    Sebastian S

  • #2
    Hallo,

    einführend will ich sagen dass Refresh/Invalidate das Steuerelement (auch eine Form ist im Grunde eines) neu zeichnen. Die dargestellten Daten werden somit nicht geändert - wie du ja festgestellt hast.

    Um Daten - egal woher diese kommen - gemäß deinen Wünschen darstellen zu können empfiehlt sich die Verwendung einer BindingSource. Diese bindet die Daten an Elemente der UI und aktualisiert bzw. synchronisiert die Daten mit dem was angezeigt wird. Infos darüber und Beispiele gibts in der MSDN (oder der Doku zu VS) zur genüge deshalb verzichte ich hier darauf - die SuFu des Forums liefert auch einige Antworten/Vorgehensweisen dazu.

    Wenn mehrere Forms beteiligt sind - wie in deinem Bsp - so kann dieselbe Instanz der BindingSource (die in einer Form ist) auch für andere Forms verwendet werden. Dazu soll/muss in den anderen Forms eine Eigenschaft implementiert werden welche die Instanz der BindingSource von der Hauptform entgegen nimmt.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment

    Working...
    X