2

私たちのアプリケーションでは、ログイン画面の初期ロード用にスプラッシュスクリーンを開きます。このログオン画面は非同期で表示されます。スプラッシュスクリーンを閉じると、次のエラーが表示されることがあります。

System.ComponentModel.Win32Exception が処理されませんでした。Message="操作は正常に完了しました"

これはフォーカスを失うことと関係があり、.net 3.5 の既知のバグであることがわかりました。ただし、コードでこれを修正する解決策が見つかりませんでした。また、アプリケーションを 4.0 にアップグレードできません。

私はすでに試しました:Application.Current.MainWindow.Focus()しかし、非同期呼び出しのために正しいスレッドにいないため、これは機能しません

誰かが以前にこの問題を抱えていて、このバグの有効な修正を提供してくれることを願っています.

これはコードであり、スプラッシュスクリーンは次のものから来ていsystem.windows.dllます:

    Public Sub New(ByVal splashResourceName As String)

        logonSplash = New SplashScreen(splashResourceName)
        logonSplash.Show(False)

        InitializeComponent()
        GetAllInfo()
        DataContext = context

    End Sub

    Private Sub LoginDialog_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded

        'Focus()
        If logonSplash IsNot Nothing Then
            logonSplash.Close(Nothing)
            logonSplash = Nothing
        End If

        txtPassword.Focus()

    End Sub
4

0 に答える 0