【发布时间】:2012-08-15 17:08:17
【问题描述】:
我有一个名为 EditCellForm 的表单类,它应该实现接口 ICoordsRequester。
该接口需要实现Focus()方法。
只要是表单,我的类就已经实现了Focus() 方法,但是编译器看不到它,因为它在Windows.Forms.Form 超类中。
有什么想法吗?
【问题讨论】:
我有一个名为 EditCellForm 的表单类,它应该实现接口 ICoordsRequester。
该接口需要实现Focus()方法。
只要是表单,我的类就已经实现了Focus() 方法,但是编译器看不到它,因为它在Windows.Forms.Form 超类中。
有什么想法吗?
【问题讨论】:
您可以使用Shadows关键字创建一个新的Focus方法来实现接口:
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
【讨论】:
您可以像往常一样实现该方法,但只需将其命名为不同的名称。然后在方法中,只需调用基类的Focus事件即可。如果它所做的一切都是一样的,我只是将它设为私有,以便它只能通过接口访问。
Public Class EditCellForm
Implements ICoordsRequester
Private Sub ICoordsRequester_Focus() Implements ICoordsRequester.Focus
Me.Focus()
End Sub
End Class
【讨论】: