2016-02-28 91 views
0

我得到了在VB .NET中的發件人對象有點糊塗。如果我有以下事件:處理髮送對象關閉事件

Private Sub wpfWindow_Closing(sender As Object, e As 
      ComponentModel.CancelEventArgs) Handles wpfWindow.Closing 

End Sub 

然後我明白髮件人是在窗口關閉之前調用關閉事件的東西。不過,我正在努力研究如何確定按下哪個按鈕。如果我在事件中執行以下操作:

Dim aButton As Button = CType(sender, Button) 

    If aButton.Content = "Next" Then 
     MessageBox.Show("You pressed Next") 
    End If 

由於無法投遞發件人,即使我按下了「下一步」,也會出現錯誤。

也試過:

If sender Is btnNext Then 
    MessageBox.Show("You pressed Next") 
End If 

但在這種情況下,它只是跳過它。

在一天結束的時候,我只是想通過一些WPF窗口進行導航。有一個開始窗口,我一旦進入下一個窗口就會隱藏起來。問題是在第二個窗口中,我想確定是否按下了「下一步」而不是「取消」或右上角的關閉按鈕。如果下一步被按下,那麼我想關閉窗口並打開另一個窗口。如果按下其他按鈕,我想關閉窗口並打開開始窗口。

回答

0

sender將是Window,因爲ClosingWindows的事件。

所以,你可以投發件人Window,而不是Button

如果您的Next和Cancel按鈕有單獨的Click事件處理程序,確定點擊哪個Button應該不難。在Click事件處理程序中,你可以做你本來想什麼,鑄造senderButton類型。

+0

感謝 - 知道我有棍子的錯誤結束莫名其妙 – area9