ShiftOS-Rewind/ShiftOS/ShiftOSTabs.vb
FloppyDiskDrive cf1bf85e01 Added the SOS code (VB and C#)
Very, very incomplete (C# isn't *remotely* complete.)
2017-09-21 17:16:49 -05:00

40 lines
1.2 KiB
VB.net

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