【问题标题】:Implement an inherited function - VB.net实现继承的功能 - VB.net
【发布时间】:2012-08-15 17:08:17
【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

    标签: vb.net winforms interface


    【解决方案1】:

    您可以使用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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-03-23
        • 1970-01-01
        • 2012-01-08
        • 1970-01-01
        • 2017-02-15
        • 1970-01-01
        • 1970-01-01
        • 2016-06-19
        • 2013-06-17
        相关资源
        最近更新 更多