From bbf81cacaec7c68b6ac232cbfe72b6369a7c0a46 Mon Sep 17 00:00:00 2001 From: pcnerd97 Date: Tue, 7 Apr 2015 19:13:20 +0100 Subject: [PATCH] ShiftOS Tabs ShiftOs Tabs Class --- ShiftOS/ShiftOSTabs.vb | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 ShiftOS/ShiftOSTabs.vb diff --git a/ShiftOS/ShiftOSTabs.vb b/ShiftOS/ShiftOSTabs.vb new file mode 100644 index 0000000..52df581 --- /dev/null +++ b/ShiftOS/ShiftOSTabs.vb @@ -0,0 +1,40 @@ +Public Class ShiftOSTabs + + Inherits TabControl + Sub New() + SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True) + DoubleBuffered = True + SizeMode = TabSizeMode.Fixed + ItemSize = New Size(120, 30) + End Sub + + Protected Overrides Sub CreateHandle() + MyBase.CreateHandle() + End Sub + + Protected Overrides Sub OnPaint(e As PaintEventArgs) + Dim B As New Bitmap(Width, Height) + Dim G As Graphics = Graphics.FromImage(B) + + G.Clear(Color.Gainsboro) + + For i = 0 To TabCount - 1 + Dim TabRectangle As Rectangle = GetTabRect(i) + + If i = SelectedIndex Then + G.FillRectangle(Brushes.DarkGray, TabRectangle) + Else + G.FillRectangle(Brushes.LightGray, TabRectangle) + End If + + G.DrawString(TabPages(i).Text, Font, Brushes.White, TabRectangle, New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center}) + Next + + e.Graphics.DrawImage(B.Clone, 0, 0) + G.Dispose() : B.Dispose() + MyBase.OnPaint(e) + End Sub + +End Class + +