![](/img/trans.png)
[英]ShowDialog Allowing Event Triggers on MainWindow Underneath WPF VB.NET
[英]Elapsed Time Event Handler in WPF VB.NET
我正在我的程序中實現一個計時器,該計時器在按下按鈕時啟動。 一旦時間過去,我的意圖是關閉程序; 但是,我收到無效操作異常。 我的程序的不同部分也使用 Close() 操作,但即使我從程序中刪除它,它仍然會拋出錯誤。 我怎樣才能讓它正常工作?
Public Class Password
Public timer1 As System.Timers.Timer = New System.Timers.Timer()
Public loginAttempts As Integer = 0
Private myPassword As String = "MPCgso4char"
Private Sub AcceptButton_Click(sender As Object, e As RoutedEventArgs)
wrongPass.Content = "Incorrect password. Please try again."
wrongPass.Visibility = Visibility.Hidden
Select Case passTextBox.Text
Case = myPassword
Close()
Case = ""
wrongPass.Content = "Please enter a valid password."
wrongPass.Visibility = Visibility.Visible
Case <> myPassword
wrongPass.Visibility = Visibility.Visible
End Select
End Sub
Private Sub DeclineButton_Click(sender As Object, e As RoutedEventArgs)
passTitle.Visibility = Visibility.Hidden
AcceptButton.Visibility = Visibility.Hidden
DeclineButton.Visibility = Visibility.Hidden
showPass.Visibility = Visibility.Hidden
passTextBox.Visibility = Visibility.Hidden
If wrongPass.Visibility = Visibility.Visible Then
wrongPass.Visibility = Visibility.Hidden
End If
decBtnClickEvent.Visibility = Visibility.Visible
timer1.Interval = 1500
timer1.Enabled = True
timer1.Start()
AddHandler timer1.Elapsed, AddressOf TimedEvent
End Sub
Private Sub passTextBox_TextChanged(sender As Object, e As TextChangedEventArgs)
wrongPass.Visibility = Visibility.Hidden
End Sub
Private Sub showPass_Checked(sender As Object, e As RoutedEventArgs)
End Sub
Private Sub TimedEvent(sender As Object, e As System.Timers.ElapsedEventArgs)
Close()
End Sub
Private Sub Enter(sender As Object, e As KeyEventArgs) Handles passTextBox.KeyDown
If e.Key = Key.Enter Then
AcceptButton_Click(Nothing, Nothing)
Else
Exit Sub
End If
End Sub
End Class
嘗試使用Application.Current.Shutdown()
而不是Close()
Private Sub TimedEvent(sender As Object, e As System.Timers.ElapsedEventArgs)
Application.Current.Shutdown()
End Sub
此外,請確保您的Public Class Password
另一個線程中。
在這種情況下,您可以使用:
Me.Dispatcher.Invoke(Sub() Application.Current.Shutdown() End Sub)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.