Verilen TabControl nesnesinde DrawItem olayı ile TabPage rengini ayarlamaya yarayan csharp kodu alternatifidir.
/// <summary>
/// TabControl nesnesi üzerindeki TabPage
/// nesnelerinin sekme başlıklarının
/// rengini ayarlamaya yarıyor.
/// </summary>
/// <param name="sender">Event, sender parametresi.</param>
/// <param name="e">Event, DrawItemEventArgs e parametresi.</param>
/// <param name="tabControl">TabControl nesnesi.</param>
public static void DrawItem_TabPageRenginiAyarla(object sender, DrawItemEventArgs e, TabControl tabControl)
{
tabControl.DrawMode = TabDrawMode.OwnerDrawFixed;
TabPage page = tabControl.TabPages[e.Index];
e.Graphics.FillRectangle(new SolidBrush(Color.DarkGray), e.Bounds);
//Rectangle paddedBounds = e.Bounds;
//int yOffset = (e.State == DrawItemState.Selected) ? -2 : 1;
//paddedBounds.Offset(0, 0 /* yOffset */);
TextRenderer.DrawText(e.Graphics, page.Text, tabControl.Font, e.Bounds, Color.Black);
//https://stackoverflow.com/a/2109796
}
/// <summary>
/// TabControl nesnesine ait TabPage nesnelerinin
/// arkaplan renklerini değiştirmeye yarıyor.
/// </summary>
/// <param name="sender">Event, sender parametresi.</param>
/// <param name="e">Event, DrawItemEventArgs e parametresi.</param>
/// <param name="tabControl">TabControl nesnesi.</param>
/// <param name="brush">Brush nesnesi.</param>
public static void DrawItem_TabPageArkaPlanRenklendir(
object sender, DrawItemEventArgs e, TabControl tabControl, Brush brush)
{
Rectangle lasttabrect = tabControl.GetTabRect(tabControl.TabPages.Count - 1);
RectangleF emptyspacerect = new RectangleF(
lasttabrect.X + lasttabrect.Width + tabControl.Left,
tabControl.Top + lasttabrect.Y,
tabControl.Width - (lasttabrect.X + lasttabrect.Width),
lasttabrect.Height);
e.Graphics.FillRectangle(brush, emptyspacerect);
}