使用 VB.net 表单的 Tabcontrol 和文本放置
Tabcontrol and Text Placement using VB.net Form
我正在尝试构建一个左侧有选项卡的应用程序,但我希望文本是水平的而不是垂直的。我看过很多关于 WPF 和 C# 的论坛帖子,但没有什么特定于 VB.net。
是否有特定的 属性 我可以用来将文本从垂直更改为水平?我如何实施此类更改?我知道这似乎是新手喜欢问的问题,但我觉得我碰壁了。任何帮助将不胜感激。
我能够在 Microsoft 的 .Net 资源页面上找到以下内容。
我现在唯一想做的就是在文本中添加填充,使其不在对话框的右侧。如果有人有任何想法,请指教。
Private Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
Dim g As Graphics = e.Graphics
Dim _TextBrush As Brush
' Get the item from the collection.
Dim _TabPage As TabPage = TabControl1.TabPages(e.Index)
' Get the real bounds for the tab rectangle.
Dim _TabBounds As Rectangle = TabControl1.GetTabRect(e.Index)
If (e.State = DrawItemState.Selected) Then
' Draw a different background color, and don't paint a focus rectangle.
_TextBrush = New SolidBrush(Color.Red)
g.FillRectangle(Brushes.Gray, e.Bounds)
Else
_TextBrush = New System.Drawing.SolidBrush(e.ForeColor)
e.DrawBackground()
End If
' Use our own font.
Dim _TabFont As New Font("Arial", 10.0, FontStyle.Bold, GraphicsUnit.Pixel)
' Draw string. Center the text.
Dim _StringFlags As New StringFormat()
_StringFlags.Alignment = StringAlignment.Center
_StringFlags.LineAlignment = StringAlignment.Center
g.DrawString(_TabPage.Text, _TabFont, _TextBrush, _TabBounds, New StringFormat(_StringFlags))
End Sub
我正在尝试构建一个左侧有选项卡的应用程序,但我希望文本是水平的而不是垂直的。我看过很多关于 WPF 和 C# 的论坛帖子,但没有什么特定于 VB.net。
是否有特定的 属性 我可以用来将文本从垂直更改为水平?我如何实施此类更改?我知道这似乎是新手喜欢问的问题,但我觉得我碰壁了。任何帮助将不胜感激。
我能够在 Microsoft 的 .Net 资源页面上找到以下内容。
我现在唯一想做的就是在文本中添加填充,使其不在对话框的右侧。如果有人有任何想法,请指教。
Private Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
Dim g As Graphics = e.Graphics
Dim _TextBrush As Brush
' Get the item from the collection.
Dim _TabPage As TabPage = TabControl1.TabPages(e.Index)
' Get the real bounds for the tab rectangle.
Dim _TabBounds As Rectangle = TabControl1.GetTabRect(e.Index)
If (e.State = DrawItemState.Selected) Then
' Draw a different background color, and don't paint a focus rectangle.
_TextBrush = New SolidBrush(Color.Red)
g.FillRectangle(Brushes.Gray, e.Bounds)
Else
_TextBrush = New System.Drawing.SolidBrush(e.ForeColor)
e.DrawBackground()
End If
' Use our own font.
Dim _TabFont As New Font("Arial", 10.0, FontStyle.Bold, GraphicsUnit.Pixel)
' Draw string. Center the text.
Dim _StringFlags As New StringFormat()
_StringFlags.Alignment = StringAlignment.Center
_StringFlags.LineAlignment = StringAlignment.Center
g.DrawString(_TabPage.Text, _TabFont, _TextBrush, _TabBounds, New StringFormat(_StringFlags))
End Sub