Определить высоту 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() для получения границ вкладки во время выполнения. Помните, что он может измениться в многострочном элементе управления вкладками, поскольку пользователь перемещается по позициям замены вкладок и строк.