vb.net - 更改选定的选项卡字体(粗体)或颜色

时间:2010-07-18 00:04:43

标签: vb.net

我一直在谷歌搜索,测试等几个小时,我就在我开始的地方。 vb.net选项卡控件很糟糕...有没有人有提示或代码来实现它,所以当我选择一个选项卡时,字体颜色会改变,或者它只是使选项卡标题文本变为粗体?

我已经搞乱了绘制命令,虽然它确实有效,但它会绘制边框/背景,因此它们看起来很旧/过时。

这基本上是我正在处理的一个简单的标签文本编辑器,当控件中的文本框发生变化时,我可以用红色字体更新关联的标签,或者只是粗体表示该标签上的文本框被修改。 / p>

我绝对愿意接受替代标签控件,只要它们是免费的并附带一个vb.net示例:)

这是在vb.net 2008 express

2 个答案:

答案 0 :(得分:0)

将选项卡控件的DrawMode设置为OwnerDrawFixed并自行绘制选项卡以响应DrawItem事件。

答案 1 :(得分:0)

将TabControl drawmode设置为OwnerDrawFixed,然后创建一个eventhandler来绘制选项卡以响应DrawItem事件。 e.g。

Private Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
  Dim tabctl As TabControl = DirectCast(sender, TabControl)
  Dim g As Graphics = e.Graphics
  Dim font As Font = tabctl.Font
  Dim brush As New SolidBrush(Color.Black)
  tabTextArea = RectangleF.op_Implicit(tabctl.GetTabRect(e.Index))
  If tabctl.SelectedIndex = e.Index Then
    font = New Font(font, FontStyle.Bold)
    brush = New SolidBrush(Color.Red)
  End If
  g.DrawString(tabctl.TabPages(e.Index).Text, font, brush, tabTextArea)
End Sub