我如何要求一个类是Windows.Forms.Control并实现一个接口?

时间:2011-11-29 17:32:46

标签: vb.net forms inheritance interface

我不确定我在这里做的正确......

我正在编写一个应该(相当)通用的用户控件。这有点像修改后的电子邮件客户端,专门针对我们所做的一些内部事务而定制。

视图由两个主要部分组成,即消息列表和查看器。我需要这个查看器可以互换,所以如果有人想要一个不同的视图样式,他们可以简单地处理事件并更改属性。我最初的想法是只有一个INoteViewer,但由于我将它添加到我的表单中,我还需要保证这个对象是某种类型的Windows.Forms.Control。

如果我不能将它强制转换为INoteViewer,我是否可以继续沿着这些行继续引发ArgumentException,或者我应该从不同的方向创建一个继承自Windows.Forms.Control的类?

1 个答案:

答案 0 :(得分:1)

要做你想做的事,你可以这样做:

Public Interface IMyInterface
    Sub Method1()
    Sub Method2()

End Interface

Public MustInherit Class MyBaseControl
    Inherits Control
    Implements IMyInterface

    Public MustOverride Sub Method1() Implements IMyInterface.Method1
    Public MustOverride Sub Method2() Implements IMyInterface.Method2
End Class

Public Class MyControl
    Inherits MyBaseControl

    Public Overrides Sub Method1()

    End Sub

    Public Overrides Sub Method2()

    End Sub
End Class

实际上,如果你使用抽象类,你也可以不使用接口。