Show / Hide Table of Contents

Krypton Toolkit - Quick Reference Card

🚀 Standard WinForms → Krypton Migration

✅ Direct Replacements (Just change the class name!)

// Forms & Containers
Form                  → KryptonForm
Panel                 → KryptonPanel
GroupBox              → KryptonGroupBox
SplitContainer        → KryptonSplitContainer
TableLayoutPanel      → KryptonTableLayoutPanel

// Input Controls
Button                → KryptonButton
TextBox               → KryptonTextBox
RichTextBox           → KryptonRichTextBox
MaskedTextBox         → KryptonMaskedTextBox
CheckBox              → KryptonCheckBox
RadioButton           → KryptonRadioButton
ComboBox              → KryptonComboBox
ListBox               → KryptonListBox
CheckedListBox        → KryptonCheckedListBox
NumericUpDown         → KryptonNumericUpDown
DomainUpDown          → KryptonDomainUpDown
DateTimePicker        → KryptonDateTimePicker
MonthCalendar         → KryptonMonthCalendar
TrackBar              → KryptonTrackBar

// Display Controls
Label                 → KryptonLabel
LinkLabel             → KryptonLinkLabel
PictureBox            → KryptonPictureBox
ProgressBar           → KryptonProgressBar
ScrollBar             → KryptonScrollBar

// Data Controls
DataGridView          → KryptonDataGridView
ListView              → KryptonListView
TreeView              → KryptonTreeView
PropertyGrid          → KryptonPropertyGrid

// Dialogs
MessageBox            → KryptonMessageBox
ColorDialog           → KryptonColorDialog
FontDialog            → KryptonFontDialog
OpenFileDialog        → KryptonOpenFileDialog
SaveFileDialog        → KryptonSaveFileDialog
FolderBrowserDialog   → KryptonFolderBrowserDialog
PrintDialog           → KryptonPrintDialog

// Menus & Toolbars
MenuStrip             → MenuStrip  // Automatically themed (font not customizable)
ContextMenuStrip      → KryptonContextMenu  // Full replacement with MORE features!
ToolStrip             → KryptonToolStrip (or standard ToolStrip - both themed)
StatusStrip           → KryptonStatusStrip (or standard StatusStrip - both themed)
ToolStripMenuItem     → KryptonToolStripMenuItem
ToolStripComboBox     → KryptonToolStripComboBox

// Navigation (Containers)
TabControl            → KryptonNavigator  // Full replacement with 15+ modes!

// Web
WebBrowser            → KryptonWebBrowser

⚠️ Missing Controls (Use Standard WinForms)

// Control with NO Krypton version - use standard (NOT themed):
ToolTip               → ToolTip (standard) or ToolTipValues on Krypton controls ❌

// Now available - use Krypton versions:
ErrorProvider         → KryptonErrorProvider ✅
FlowLayoutPanel       → KryptonFlowLayoutPanel ✅
HelpProvider          → KryptonHelpProvider ✅
NotifyIcon            → KryptonNotifyIcon ✅

// These ARE fully replaced (not missing):
TabControl            → KryptonNavigator ✅
ContextMenuStrip      → KryptonContextMenu ✅

// These ARE themed automatically (just use the standard control):
MenuStrip             → MenuStrip ✅ (Auto-themed, but font not customizable)
ToolStrip             → ToolStrip or KryptonToolStrip ✅ (Both themed)
StatusStrip           → StatusStrip or KryptonStatusStrip ✅ (Both themed)

// Non-visual components (use standard)
Timer                 → System.Windows.Forms.Timer
ImageList             → ImageList
BindingSource         → BindingSource
BindingNavigator      → BindingNavigator (or build with KryptonToolStrip)
BackgroundWorker      → BackgroundWorker
FileSystemWatcher     → FileSystemWatcher

🎯 Special Cases

TabControl → KryptonNavigator (Full Replacement!)

// KryptonNavigator REPLACES TabControl with MORE features!
// For simple tabs, use BarTabGroup mode (like TabControl):
var navigator = new KryptonNavigator
{
    NavigatorMode = NavigatorMode.BarTabGroup  // Simple tab mode
};

// Add pages (just like TabPages)
var page1 = new KryptonPage 
{ 
    Text = "Page 1",
    // Add controls to page
};
var page2 = new KryptonPage { Text = "Page 2" };
navigator.Pages.Add(page1);
navigator.Pages.Add(page2);

// Advanced: Navigator has 15+ modes!
// - BarRibbonTabGroup (ribbon-style tabs)
// - OutlookFull (Outlook navigation pane)
// - OutlookMini (mini Outlook nav)
// - HeaderBarCheckButtonGroup (buttons in header)
// - StackCheckButtonGroup (stacked buttons)
// ... and many more!

MenuStrip → Automatically Themed

// Good news: Standard MenuStrip is automatically themed by Krypton!
var menuStrip = new MenuStrip();  // This will be Krypton-themed!

// Add File menu
var fileMenu = new ToolStripMenuItem("&File");
fileMenu.DropDownItems.Add("&New", null, OnNew);
fileMenu.DropDownItems.Add("&Open", null, OnOpen);
fileMenu.DropDownItems.Add(new ToolStripSeparator());
fileMenu.DropDownItems.Add("E&xit", null, OnExit);
menuStrip.Items.Add(fileMenu);

// Add Edit menu
var editMenu = new ToolStripMenuItem("&Edit");
editMenu.DropDownItems.Add("&Cut", null, OnCut);
editMenu.DropDownItems.Add("&Copy", null, OnCopy);
editMenu.DropDownItems.Add("&Paste", null, OnPaste);
menuStrip.Items.Add(editMenu);

Controls.Add(menuStrip);

// ⚠️ LIMITATION: Font cannot be customized (controlled by Krypton renderer)
// menuStrip.Font = new Font("Arial", 12); // This won't work

// For advanced scenarios requiring font control:
// Option 1: Use KryptonRibbon (modern Office-style, font customizable)
// Option 2: Use KryptonToolStrip (toolbar-style menu, font customizable)
// Option 3: Use KryptonContextMenu (rich menus, font customizable)

🆕 Bonus Krypton-Only Controls

These controls don't exist in standard WinForms:

// Modern UI
KryptonToastNotification    // Modern toast notifications
KryptonToggleSwitch         // iOS-style toggle
KryptonCommandLinkButton    // Vista-style command link
KryptonBreadCrumb           // Breadcrumb navigation
KryptonSplashScreen         // Splash screen

// Advanced Components
KryptonRibbon               // Office-style ribbon
KryptonNavigator            // Advanced tab control
KryptonDocking              // Docking panels
KryptonWorkspace            // Workspace management

// Enhanced Dialogs
KryptonTaskDialog           // Modern task dialog
KryptonInformationBox       // Enhanced message box
KryptonInputBox             // Input dialog
KryptonAboutBox             // About dialog
KryptonExceptionDialog      // Exception display

// Specialized
KryptonHeader               // Section header
KryptonHeaderGroup          // Panel with header
KryptonBorderEdge           // Border/separator
KryptonDropButton           // Button with dropdown
KryptonColorButton          // Color picker button
KryptonCalcInput            // Calculator input
KryptonWrapLabel            // Auto-wrapping label
KryptonThemeBrowser         // Theme selection UI

🎨 Theming Basics

Set Global Theme

// In Program.cs or Form.Load
KryptonManager manager = new KryptonManager();
manager.GlobalPaletteMode = PaletteMode.Microsoft365Blue;

// Or use static method
KryptonManager.GlobalPaletteMode = PaletteMode.Microsoft365Blue;

Available Themes

PaletteMode.Microsoft365Black
PaletteMode.Microsoft365Blue
PaletteMode.Microsoft365Silver
PaletteMode.Microsoft365White
PaletteMode.Office2007Blue
PaletteMode.Office2007Silver
PaletteMode.Office2010Blue
PaletteMode.Office2010Silver
PaletteMode.Office2010Black
PaletteMode.Office2013White
PaletteMode.SparkleBlue
PaletteMode.SparkleOrange
PaletteMode.SparklePurple
PaletteMode.ProfessionalOffice2003
PaletteMode.ProfessionalSystem
// ... and many more

Per-Control Theme Override

var button = new KryptonButton
{
    PaletteMode = PaletteMode.Office2007Blue  // Override global theme
};

💡 Common Patterns

Form with Krypton Controls

public partial class MyForm : KryptonForm  // Use KryptonForm
{
    public MyForm()
    {
        InitializeComponent();
        
        // Theme is automatically applied
    }
}

Validation

// Use KryptonErrorProvider (themed)
var errorProvider = new KryptonErrorProvider();
errorProvider.SetError(textBox, "This field is required");

// Or use control state
kryptonTextBox.StateCommon.Border.Color1 = Color.Red;
kryptonLabel.StateCommon.ShortText.Color1 = Color.Red;
kryptonLabel.Text = "Error: This field is required";

Tooltips

// Option 1: Use standard ToolTip (not themed - KryptonToolTip not yet available)
var toolTip = new ToolTip();
toolTip.SetToolTip(kryptonButton, "Click me!");

// Option 2: Use control's built-in tooltip
kryptonButton.ToolTipValues.Heading = "Help";
kryptonButton.ToolTipValues.Description = "Click me!";
kryptonButton.ToolTipValues.EnableToolTips = true;

FlowLayoutPanel

// Use KryptonFlowLayoutPanel (themed)
var flow = new KryptonFlowLayoutPanel
{
    FlowDirection = FlowDirection.LeftToRight,
    WrapContents = true
};

// Add Krypton controls to it
flow.Controls.Add(new KryptonButton { Text = "Button 1" });
flow.Controls.Add(new KryptonButton { Text = "Button 2" });

Context Menu

// KryptonContextMenu is MORE powerful than ContextMenuStrip!
var contextMenu = new KryptonContextMenu();

var menuItems = new KryptonContextMenuItems();
menuItems.Items.Add(new KryptonContextMenuItem("Cut"));
menuItems.Items.Add(new KryptonContextMenuItem("Copy"));
menuItems.Items.Add(new KryptonContextMenuItem("Paste"));
menuItems.Items.Add(new KryptonContextMenuSeparator());

// You can add rich items not available in ContextMenuStrip:
menuItems.Items.Add(new KryptonContextMenuCheckBox("Show Toolbar"));
menuItems.Items.Add(new KryptonContextMenuColorColumns(16)); // Color picker!
menuItems.Items.Add(new KryptonContextMenuMonthCalendar());  // Calendar!
menuItems.Items.Add(new KryptonContextMenuProgressBar());    // Progress bar!

contextMenu.Items.Add(menuItems);

kryptonTextBox.KryptonContextMenu = contextMenu;  // Assign to control

System Tray Icon

// Use KryptonNotifyIcon (themed) with KryptonContextMenu
var notifyIcon = new KryptonNotifyIcon
{
    Icon = SystemIcons.Application,
    Text = "My App",
    Visible = true
};

var contextMenu = new KryptonContextMenu();
// ... setup context menu ...

notifyIcon.MouseClick += (s, e) =>
{
    if (e.Button == MouseButtons.Right)
    {
        contextMenu.Show(Cursor.Position);
    }
};

🔧 DataGridView Enhanced Columns

Krypton adds these special columns to DataGridView:

var grid = new KryptonDataGridView();

// Standard columns (themed)
grid.Columns.Add(new KryptonDataGridViewTextBoxColumn());
grid.Columns.Add(new KryptonDataGridViewCheckBoxColumn());
grid.Columns.Add(new KryptonDataGridViewComboBoxColumn());
grid.Columns.Add(new KryptonDataGridViewButtonColumn());
grid.Columns.Add(new KryptonDataGridViewLinkColumn());
grid.Columns.Add(new KryptonDataGridViewImageColumn());

// Krypton-enhanced columns
grid.Columns.Add(new KryptonDataGridViewDateTimePickerColumn());
grid.Columns.Add(new KryptonDataGridViewNumericUpDownColumn());
grid.Columns.Add(new KryptonDataGridViewDomainUpDownColumn());
grid.Columns.Add(new KryptonDataGridViewMaskedTextBoxColumn());
grid.Columns.Add(new KryptonDataGridViewProgressColumn());  // Progress bar!
grid.Columns.Add(new KryptonDataGridViewRatingColumn());    // Star rating!
grid.Columns.Add(new KryptonDataGridViewIconColumn());      // Icon display

📚 Documentation Links

  • Full Audit: Krypton Toolkit Audit - Complete control inventory
  • Summary: Krypton Audit Summary - Executive summary and gaps
  • Implementation Guide: Missing Controls Implementation Guide - How to implement missing controls
  • This File: Krypton Quick Reference - Quick reference card
  • RTL Audit: Krypton RTL Audit Summary - Summarises which controls need RTL support

🐛 Common Issues

Issue: Controls not themed

Solution: Ensure form inherits from KryptonForm or add KryptonManager component

Issue: Standard dialogs not themed

Solution: Use Krypton*Dialog classes instead of standard dialogs

Issue: MenuStrip not themed

Solution: It IS themed! Standard MenuStrip automatically adopts Krypton theming when used in a KryptonForm or with KryptonManager

Issue: Can't change MenuStrip font

Solution: This is a limitation - MenuStrip font is controlled by the Krypton renderer and cannot be customized. For font control, use:

  • KryptonRibbon (font customizable)
  • KryptonToolStrip (font customizable)
  • KryptonContextMenu (font customizable)

Issue: ContextMenuStrip not themed

Solution: Use KryptonContextMenu instead of ContextMenuStrip - it's a full replacement with MORE features (colors, calendars, progress bars, etc.)!

Issue: Need validation error icons

Solution: Use KryptonErrorProvider (themed)

Issue: Need tooltips

Solution: Use standard ToolTip (not themed) or use control's ToolTipValues property - KryptonToolTip not yet available

Issue: Need FlowLayout

Solution: Use KryptonFlowLayoutPanel (themed)


⚡ Quick Start Template

using Krypton.Toolkit;

namespace MyKryptonApp
{
    public partial class MainForm : KryptonForm
    {
        private readonly KryptonManager _manager = new KryptonManager();
        
        public MainForm()
        {
            InitializeComponent();
            
            // Set theme
            _manager.GlobalPaletteMode = PaletteMode.Microsoft365Blue;
            
            // Add controls
            var button = new KryptonButton
            {
                Text = "Click Me!",
                Location = new Point(10, 10)
            };
            button.Click += Button_Click;
            Controls.Add(button);
            
            var textBox = new KryptonTextBox
            {
                Location = new Point(10, 50),
                Width = 200
            };
            textBox.CueHint.CueHintText = "Enter text...";  // Watermark
            Controls.Add(textBox);
        }
        
        private void Button_Click(object sender, EventArgs e)
        {
            KryptonMessageBox.Show("Hello, Krypton!", "Info",
                MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}
Back to top Krypton Component Suite BSD 3-Clause License © Component Factory Pty Ltd, 2006 - 2016, All rights reserved. Modifications by Peter Wagner (aka Wagnerp), Simon Coghlan (aka Smurf-IV), Giduac, Tobitege, Lesarndro, KamaniAR & Ahmed Abdelhameed et al. 2017 - 2025. All rights reserved. https://github.com/Krypton-Suite