Проблема с реализацией интерфейса vbnet.Возможная проблема наследования, так как мне нужно наследовать от System.Drawing.Point - PullRequest
0 голосов
/ 11 февраля 2019

Извинения, если это кажется глупым вопросом или некомпетентным кодированием.Я очень новичок в ООП и в среде Visual Studio 2017 и прохожу крутой курс обучения.Я пытаюсь написать некоторый код для обработки перетаскивания для просмотра дерева.
Вот соответствующий фрагмент:

Private Sub TreeView2_DragOver(sender As Object, e As DragEventArgs) Handles TreeView2.DragOver

If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) = False Then Exit Sub

Dim selectedTreeview As TreeView = CType(sender, TreeView)

Dim pt As Point 
pt = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))  '<- This Line Generates Error
Dim targetNode As TreeNode = selectedTreeView.GetNodeAt(pt)

strong textEnd Sub

Проблема в том, что Point определен как интерфейс, который я не могу правильнореализовать (не из-за отсутствия попыток).Ошибка, которую я получаю, возникает при оценке PointToClient: Значение типа «Point» не может быть преобразовано в «Point». Вот что я сделал до сих пор в отношении интерфейса:

Interface IPoint
   Sub Point(x As Integer, y As Integer)
End Interface

Class Point 
   'Inherits System.Drawing.Point      '<- Generated an error
    Implements IPoint

    Public Sub IPoint_Point(X As Integer, Y As Integer) Implements IPoint.Point
        Throw New NotImplementedException()
    End Sub

    Public X, Y As Integer

    Public Sub New(newX As Integer, newY As Integer)
        X = newX
        Y = newY
    End Sub

End Class

Я пытался унаследовать System.Drawing.Point для получения необходимой функциональности.Однако это привело к ошибке, говорящей: « Классы могут наследовать только от других классов». Есть ли способ обойти это?Имеет ли смысл мой подход?

Мой тип проекта в Visual Studio 2017 - это Excel 2013 и VSTO WorkBook.

Любые рекомендации и / или предложения приветствуются.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...