1

フォームの右側にタブを水平に表示しようとしています。テキストの表示方法が原因で、ツール ボックスからタブ コントロールを使用できません。私は私を助けることがわかったコードを使用しています。しかし、すべてのリソースを使い果たした後、コードが tabPages コレクションを指すようにできないようです。そこにエントリがありますが、タブが空白で表示されます。

 Public Sub New()
    tabControl1 = New TabControl()
    Dim tabPage1 As New TabPage()

    ' Sets the tabs to be drawn by the parent window Form1. 
    ' OwnerDrawFixed allows access to DrawItem. 
    tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed

    tabControl1.Controls.Add(tabPage1)
    tabControl1.Location = New Point(25, 25)
    tabControl1.Size = New Size(250, 250)

    tabPage1.TabIndex = 0

    myTabRect = tabControl1.GetTabRect(0)

    ClientSize = New Size(300, 300)
    Controls.Add(tabControl1)

    AddHandler tabControl1.DrawItem, AddressOf OnDrawItem
End Sub!

タブの例

4

2 に答える 2

0

これを機能させるために、さまざまなソースからこのコードをコンパイルすることになりました。

    Private Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
    Dim g As Graphics
    Dim sText As String

    Dim iX As Integer
    Dim iY As Integer
    Dim sizeText As SizeF
    Dim ctlTab As TabControl

    Dim r As New RectangleF(e.Bounds.X, e.Bounds.Y + 2, e.Bounds.Width, e.Bounds.Height - 2)

    ctlTab = CType(sender, TabControl)

    g = e.Graphics

    sText = ctlTab.TabPages(e.Index).Text
    sizeText = g.MeasureString(sText, ctlTab.Font)

    iX = e.Bounds.Left + 6
    iY = e.Bounds.Top + (e.Bounds.Height - sizeText.Height) / 2

    g.DrawString(sText, ctlTab.Font, Brushes.Black, iX, iY)
End Sub

テキストはRADに表示されませんが、デバッグ/実行すると表示されます。

LUC001 @ http://www.dreamincode.net/forums/topic/125792-how-to-make-vertical-tabs/に感謝します。

于 2012-10-13T13:25:49.947 に答える