Announcement

Collapse
No announcement yet.

Vorgehen Hauptformular

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

  • Vorgehen Hauptformular

    Hallo!

    Ich hab mal eine grundsätzliche Frage zum Vorgehen bei einer Anwendungsentwicklung:

    Zum Start meiner Anwendung wird ein Loginformular frmLogin geöffnet.

    Bei erfolgreicher Anmeldung wird frmLogin geschlossen und das eigentliche Hauptformular geschlossen. Vom Hauptformular aus werden verschiedene weitere Formulare geöffnet, und manchmal möchte ich das Hauptformular zugreifen, um z.B. dort Textfelder zu aktualiseren.

    Bisher mache ich das in etwa so:


    Code:
    Public Class frmLogin
    
        Public frmmain As F_SYS_Main2013
    
    
    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ok.Click
    
    'Pruefroutine Login 
    'Do Something ...
    
    
            frmmain = New F_SYS_Main2013
            frmmain.Show()
    
            Me.Close()
    
            
    
    
        End Sub
    
    
    End Class

    Und in den weiteren Formularen greife ich so auf das Hauptformular zu:

    Code:
    Public Class form1
    
    
    Private Sub Update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Update.Click
    
    'DoSomething ...
    
    
            Frmmain.updatetextfeld()
    
    
    
        End Sub
    
    
    End Class
    Das funktioniert auch alles wunderbar und schon sehr lange.

    Aktuell bin ich beim Überarbeiten des Codes. Aktuell deklariere ich im Loginform das Hauptformular. So richtig sauber ist das nicht, oder?
    Wo sollte man das Hauptformular frmmain deklarieren?

    Danke für Hinweise

    Marco

  • #2
    Keiner eine Idee?

    Comment


    • #3
      Deine Formulae sind Klassen. Das was du machst ist ein übliches Vorgehen um von einer Klasse auf die eine andere zuzugreifen. Vielleicht nicht direkt über die public Variable, sondern über einen Getter. Alertnative wäre eine Singelton-Klasse oder eine Serviceregistry
      Christian

      Comment


      • #4
        Aktuell bin ich beim Überarbeiten des Codes. Aktuell deklariere ich im Loginform das Hauptformular. So richtig sauber ist das nicht, oder?
        Wo sollte man das Hauptformular frmmain deklarieren?
        Keiner eine Idee?
        Wenn du von ~sauber~ sprichst dann geht es nicht darum das Formular anders zu deklarieren sondern dafür zu sorgen das Formen nicht miteinander sprechen müssen (aka sich nicht mal kennen).
        Üblicherweise ändern Formen Daten das wird durch ein Datenmodel dargestellt. Wenn deine Form also etwas ändert dann dann sollte es das Model ändern und die Änderung des Models sollte dann zu Änderungen
        an anderen Formen führen die an diesen Änderungen des Models interessiert sind. Das läßt sich wunderbar mit Events aus dem Model lösen es gibt aber reichlich Muster das konkret zu lösen.
        Letzlich ist das Ziel das auch das Model die Formen nicht kennt. Mit den isolierten Einzelteilen läßt sich dann gefahrloser arbeiten da Änderungen üblicherweise nur lokale Auswirkungen haben (wie auch wenn niemand denn anderen direkt kennt außer das alle das Model als Dreh- und Angelpunkt kennen. Das Model wiederum aber niemanden.)

        Comment


        • #5
          Du kannst auch application.run mit einem application context aufrufen. Dort hast Du mehr Möglichkeiten zur Kontrolle der Forms.

          http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx
          Zuletzt editiert von fanderlf; 03.03.2014, 21:22.

          Comment

          Working...
          X