Category / Section
How to change the navigation button size in WinForms TabControlAdv?
1 min read
Change tab navigation button size
WinForms Tab Control has the collection of TabPrimitives which used to display the navigation buttons. We have maintained the navigation buttons size internally. This navigation button size can be customized using reflection. The following code demonstrates the same.
C#
//Add reflection namespace using System.Reflection; //TabControlAdv Item size this.tabControlAdv1.ItemSize = new Size(this.tabControlAdv1.ItemSize.Width, 50); //Set the TabPrimitive size foreach (TabPrimitive item in this.tabControlAdv1.TabPrimitivesHost.TabPrimitives) { var obj = item; FieldInfo fi = obj.GetType().GetField("m_szSize", BindingFlags.NonPublic | BindingFlags.Instance); //Set the size fi.SetValue(obj, new Size(50, 50)); } //Custom Button Image this.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(new TabPrimitive(TabPrimitiveType.NextPage, Properties.Resources.loadscreen, Color.FromArgb(64,64,64), true, 1, "TabPrimitive0", "")); this.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(new TabPrimitive(TabPrimitiveType.PreviousTab, Properties.Resources.dp4, Color.FromArgb(64, 64, 64), true, 1, "TabPrimitive1", "")); this.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(new TabPrimitive(TabPrimitiveType.DropDown, Properties.Resources.dp2, Color.FromArgb(64, 64, 64), true, 1, "TabPrimitive2", "")); this.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(new TabPrimitive(TabPrimitiveType.FirstTab, Properties.Resources.dp3, Color.FromArgb(64, 64, 64), true, 1, "TabPrimitive3", ""));
VB
‘Add reflection namespace Imports System.Reflection 'TabControlAdv Item size Me.tabControlAdv1.ItemSize = New Size(Me.tabControlAdv1.ItemSize.Width, 50) 'Set the TabPrimitive Buttons size For Each item As TabPrimitive In Me.tabControlAdv1.TabPrimitivesHost.TabPrimitives Dim obj = item Dim fi As FieldInfo = obj.GetType().GetField("m_szSize", BindingFlags.NonPublic Or BindingFlags.Instance) fi.SetValue(obj, New Size(50, 50)) Next item 'Custom Button Image Me.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(New TabPrimitive (TabPrimitiveType.NextPage, My. Resources.loadscreen, Color.FromArgb(64,64,64), True, 1, "TabPrimitive0", "")) Me.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(New TabPrimitive (TabPrimitiveType.PreviousTab, My. Resources.dp4, Color.FromArgb(64, 64, 64), True, 1, "TabPrimitive1", "")) Me.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(New TabPrimitive (TabPrimitiveType.DropDown, My. Resources.dp2, Color.FromArgb(64, 64, 64), True, 1, "TabPrimitive2", "")) Me.tabControlAdv1.TabPrimitivesHost.TabPrimitives.Add(New TabPrimitive (TabPrimitiveType.FirstTab, My. Resources.dp3, Color.FromArgb(64, 64, 64), True, 1, "TabPrimitive3", ""))
Screenshot
Samples:
Reference link: https://help.syncfusion.com/windowsforms/tabcontrol/tab-navigation