vb.NET Drag&Drop между двумя вкладками в одном и том же tabcontrol

У меня есть два представления данных, и я перетаскиваю их между собой. Но теперь мне нужно поместить их на две вкладки в одном и том же элементе управления вкладками. Страницы должны меняться во время перетаскивания, когда я перемещаю мышь на нужный заголовок страницы, когда левая кнопка нажата. Как я могу сделать? Спасибо


person Claudio    schedule 27.08.2020    source источник
comment
Вам нужно событие GiveFeedback. Control.MousePosition сообщает вам, где находится мышь, TabControl.PointToClient() дает вам ее положение относительно вкладок. Переберите вкладки, сравните их с GetTabRect(), чтобы увидеть, зависает ли он на вкладке.   -  person Hans Passant    schedule 27.08.2020


Ответы (1)


Спасибо за повтор! Это мой код:

Private Sub DataGridView1_GiveFeedback(sender As Object, e As GiveFeedbackEventArgs) Handles DataGridView1.GiveFeedback
        Dim position As Point = TabControl1.PointToClient(Control.MousePosition)
        For id As Integer = 0 To TabControl1.TabCount - 1
            If TabControl1.GetTabRect(id).Contains(position) Then
                TabControl1.SelectedIndex = id
                Exit For
            End If
        Next
    End Sub

это работает, но не если я просто перемещаюсь между заголовками вкладок

person Claudio    schedule 28.08.2020