none
WPF Fenster starten doppelt RRS feed

  • Frage

  • Hallo zusammen

    Ich habe jetzt ein wenig Zeit und versuche jetzt mal von Windows.Forms auf WPF zu schwenken. Ich habe mal eine kleine Anwendung angefangen die später vielleicht von einer anderen Anwendung aufgerufen wird und über Startparameter einen vordefinierten Dialog mit Informationen anzeigt. Soweit so Gut mein Problem ist jetzt aber das die Anwendung einmal gestartet wird aber der entsprechende Dialog wird 2 mal angezeigt.

    Ich habe in der Datei "Application.xaml" den "Startup" angepasst

    <Application x:Class="Application"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:AppName"
        Startup="Application_Startup">
        <Application.Resources>
            
        </Application.Resources>
    </Application>

    und die Datei "Application.xaml.vb" sieht so aus

    Class Application
    	Public Enum AppMode As Integer
    		mainMode = 0
    		infoMode = 1
    		editMode = 2
    	End Enum
    	'
    	Private startMode As AppMode = AppMode.mainMode
    	'
    	Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
    		'
    		For Each arg As String In e.Args
    			If arg.Trim.ToUpper.StartsWith("/M:") Then
    				Select Case arg.Trim.ToUpper.Substring(3)
    					Case "MAIN"
    						startMode = AppMode.mainMode
    					Case "INFO"
    						startMode = AppMode.infoMode
    					Case Else
    						startMode = AppMode.mainMode
    				End Select
    			End If
    		Next
    		'
    		Select Case startMode
    			Case AppMode.infoMode
    				MainWindow = New InfoWindow
    			Case Else
    				MainWindow = New MainWindow
    		End Select
    		'
    		MainWindow.Show()
    		'
    	End Sub
    	'
    End Class
    Kann mir jemand einen Tipp geben wo es da hakt?

    LG Thomas

    Mittwoch, 22. März 2017 11:49

Antworten

  • Hi,

    hast Du mal einen Breakpoint auf eine Zeile in Application_Startup gesetzt und geschaut, ob diese Methode evtl. doppelt aufgerufen wird?

    Durch die Deklaration:

    Startup="Application_Startup">

    und die Handles Klausel:

    ... Handles Me.Startup
    dürfte genau das passieren. Lass daher eine der Sachen weg.


    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

    • Als Antwort markiert tommytom73 Mittwoch, 22. März 2017 13:36
    Mittwoch, 22. März 2017 12:23

Alle Antworten

  • Hi,

    hast Du mal einen Breakpoint auf eine Zeile in Application_Startup gesetzt und geschaut, ob diese Methode evtl. doppelt aufgerufen wird?

    Durch die Deklaration:

    Startup="Application_Startup">

    und die Handles Klausel:

    ... Handles Me.Startup
    dürfte genau das passieren. Lass daher eine der Sachen weg.


    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

    • Als Antwort markiert tommytom73 Mittwoch, 22. März 2017 13:36
    Mittwoch, 22. März 2017 12:23
  • Hallo Stefan,

    Danke für Deine schnelle Hilfe. Ich habe das Handles "Me.Startup" auskommentiert und schon funktioniert es. :-)

    Bei Windows.Forms habe ich das immer selber über eine Startklasse "cls_main" umgesetzt. Es gibt doch viele unterschiede zwischen den beiden Welten. :-)

    Danke Dir nochmal

    Gruß Thomas

    Mittwoch, 22. März 2017 13:36