实现一个继承的函数 - VB.net

时间:2012-08-20 11:02:11

标签: vb.net winforms interface

我有一个名为EditCellForm的表单类,它应该实现接口ICoordsRequester

此接口需要实现Focus()方法。

只要它是一个表单,我的类已经实现了Focus()方法,但编译器无法看到它,因为它位于Windows.Forms.Form超类中。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用Focus关键字创建新的Shadows方法来实现界面:

Class EditCellForm 
    Inherits Form
    Implements ICoordsRequester

    Shadows Sub Focus Implements ICoordsRequester.Focus
        Mybase.Focus
    End Sub

End Class

或重命名您的方法

Class EditCellForm 
    Inherits Form
    Implements ICoordsRequester

    Sub NewFocus Implements ICoordsRequester.Focus
        Focus()
    End Sub

End Class

答案 1 :(得分:2)

您可以像往常一样实现该方法,但只需将其称为不同的方法即可。然后在该方法中,只需调用基类的Focus事件。如果它所做的一切都是一样的话,我只是将它设为私有,这样它才能通过界面访问。

Public Class EditCellForm
    Implements ICoordsRequester 

    Private Sub ICoordsRequester_Focus() Implements ICoordsRequester.Focus
        Me.Focus()
    End Sub
End Class