2016-02-28 87 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