Извинения, если это кажется глупым вопросом или некомпетентным кодированием.Я очень новичок в ООП и в среде 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.
Любые рекомендации и / или предложения приветствуются.Спасибо!