2017-06-14 26 views
0

可以做到吗?例如像,是否可以使用不同的事件调用另一个私人子?

Private Sub inputno_tb_MouseDown(sender As Object, e As MouseEventArgs) 
    'My code 
End Sub 

Private Sub stacker1apcs_tb_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) 
    'Calling Private Sub inputno_tb_MouseDown 
End Sub 
+3

那些不只是私人方法,他们是事件处理程序。如果你希望他们都做类似的事情,可以用它创建一个新的子代码,然后从每个事件中调用它 – Plutonix

+0

如果没有更多信息,这是无法回答的。如果你想给出一个被调用的事件的外观,只需像调用其他方法一样调用Sub,这使得可读性更加困难,更好的方法是让2个事件处理程序调用第三个“共享”方法来处理都。 – Mike

回答

0

这当然是可以做到的,就像这样:

Private Sub inputno_tb_MouseDown(sender As Object, e As MouseEventArgs) 
    'My code 
End Sub 

Private Sub stacker1apcs_tb_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) 
    inputno_tb_MouseDown(sender, MouseEventArgs.Empty) 
End Sub 

如果你在代码中使用sender,你可能想将其更新为stacker1apcs_tb代替,或任何你喜欢的。

+0

*“只要你的代码不使用发件人或e对象,你可以发送Nothing作为参数。”*一个相当重要的(和危险的)假设。在这种情况下,看起来发件人是'stacker1apcs_tb',那么为什么不通过呢?事件参数应该只是'EventArgs.Empty'而不是'Nothing'。 –

+0

危险?如果他知道他没有使用它,那么没有什么可担心的。这不像他提出的任何外部代码正在处理的事件。但我会更新我的代码以包含您的观点。 – Magnus

+0

危险是因为事件处理程序中的代码可能会随时由其他程序员更新,而没有任何理由认为它被不安全地调用。我的意思是,不,它不像计算机会爆炸,但是你会遇到崩溃,你必须进行调试才能找出原因,这是浪费时间。总是更好地编写健壮的代码,而不是脆弱的代码。 –

相关问题