none
Main-Methode für die Auswertung gesucht RRS feed

  • Frage

  • Hallo,

    mein Visual Basic 2015 Projekt besteht aus mehreren Window-Forms.

    In diesen Forms werden Variablen verwendet die ich in einer Haupt-Methode in der Form1 verarbeiten möchte.

    Kann mir jemand einen Hinweis zur Lösung meines Problems geben ?

    MfG

    Juergen B.

    Samstag, 14. Januar 2017 11:39

Antworten

Alle Antworten

  • Hallo Juergen,

    vorab: Löse dich von den Variablen und lerne, Eigenschaften zu nutzen. Das ist jetzt hier noch nicht zwingend, wird dir später aber weniger Probleme bereiten. Siehe dazu u.a.:

      Unterschiede zwischen Eigenschaften und Variablen in Visual Basic

    Anstatt mit lokalen Variablen innerhalb der Form zu arbeiten, solltest Du eine Klasse erstellen, die alle Eigenschaften enthält, die Du über die Forms hinweg verwenden willst.

    Die Instanz dieser Klasse gibst Du dann entweder jeweils an die einzelnen Formulare weiter oder, falls nichts dagegen spricht, kannst Du auch ein Module oder statische Eigenschaften verwenden. Ich würde aber eine normale Klasse bevorzugen.

    Du kannst zwar in VB auch direkt auf die anderen Formulare und deren öffentliche Eigenschaften zugreifen, ob das nun aber sinnvoll ist oder nicht, sei dahingestellt.

    Public Class Form1
    
        Public Property EigenschaftX As String
    
        ...
    
    End Class
    
    Public Class Form2
    
        Private Sub MachWas()
    
            Form1.EigenschaftX = "Hallo Welt"
    
        End Sub
    
    End Class

    Das wäre jetzt die einfachste Variante mit Direktzugriff auf die Eigenschaft von Form1


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Samstag, 14. Januar 2017 12:12
    Moderator
  • Hallo Stefan,

    ich hatte schon Gestern auf den Hinweis geantwortet, kann meine Antwort aber Heute nicht sehen.

    Deshalb hier noch einmal.

    Vielen Dank für den Hinweis, werde mich den Eigenschaften beschäftigen (habe auch schon ein kleines Beispiel ausprobiert).

    Was ich aber eigentlich gesucht und gefunden habe ist:

    Module Module1

        Sub Main()

            While Bedingung = True         

                 Form1.ShowDialog

                 Meine Auswertung

            End While

    End Module

    Das Problem war "Sub Main()" wird nur ausgeführt wenn man in denPrjekteigenschaften den Haken bei "Enable Application Framework" rausnimmt. Dann kann man als Startpunkt auch Sub Main auswählen.

    MfG

    Juergen B.


    Sonntag, 15. Januar 2017 10:17
  • Hi Jürgen,
    wenn Du ohne Application Framework arbeitest, fehlen Dir eine Reihe nützlicher Funktionen, auf die Du dann vielleicht später zurückgreifen willst.

    Wenn Du die Main-Methode selbst erstellst und nutzen willst, dann musst aber noch mehr machen. Dazu gehört mindesten Application.Run:

    Public Sub Main()
        Dim frm As New Form1()
        Application.Run(frm)
    End Sub


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Sonntag, 15. Januar 2017 10:39