确定选项卡控件中TabRow的高度(VB.NET)

时间:2012-11-18 15:17:10

标签: vb.net winforms tabcontrol tabpage multirow

我有一个设置为

的WinForms TabControl
Multiline = True

我制作了自己的自定义RowsChanged事件

''' <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 个答案:

答案 0 :(得分:4)

如注释中所述,您可以使用TabControl.GetTabRect()方法在运行时检索选项卡的边界。请注意,当用户导航选项卡和行交换位置时,​​它可能会在Multiline选项卡控件上更改。