2

私はに設定されている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行の高さを知りたいので、サイズの計算を行うことができます。それを判別する方法はありますか?これまでのところ、ピクセルを数えただけですが、これはあまり良くありません。

4

1 に答える 1

4

コメントに記載されているように、TabControl.GetTabRect() メソッドを使用して、実行時にタブの境界を取得できます。マルチライン タブ コントロールでは、ユーザーがタブをナビゲートして行を入れ替えると位置が変わる可能性があることに注意してください。

于 2012-11-21T21:08:49.727 に答える