В нашем приложении мы открываем заставку для начальной загрузки экрана входа в систему, этот лог-экран отображается как асинхронный.
когда мы закрываем splashscreen, иногда мы получаем следующую ошибку:
Ошибка System.ComponentModel.Win32Exception была необработанной. Сообщение = «Операция завершена успешно»
Я понял, что это имеет какое-то отношение к потере фокуса, и это известная ошибка в .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