Определить высоту TabRow в TabControl (VB.NET)

У меня есть WinForms TabControl, который установлен в

Multiline = True

Я сделал свой собственный RowsChanged Event

''' <summary>
''' Event that is raised if the rowCount of the control changed.
''' </summary>
Public Event RowsChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

Private Sub Me_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.SizeChanged, Me.SelectedIndexChanged, Me.ControlAdded, Me.ControlRemoved
    If rows <> Me.RowCount Then
        rows = Me.RowCount
        RaiseEvent RowsChanged(sender, e)
    End If
End Sub

Теперь я могу зарегистрироваться на это событие. Я хочу знать, высота одной строки, чтобы я мог сделать некоторые расчеты размера. Есть ли способ удержать это? До сих пор я считал пиксель, что не очень приятно.

1 ответ

Решение

Как отмечено в комментарии, вы можете использовать метод TabControl.GetTabRect() для получения границ вкладки во время выполнения. Помните, что он может измениться в многострочном элементе управления вкладками, поскольку пользователь перемещается по позициям замены вкладок и строк.

Другие вопросы по тегам