syncfusion-winforms-tabbed-mdi-manager
About syncfusion-winforms-tabbed-mdi-manager
This skill guides Windows Forms developers in using Syncfusion TabbedMDIManager to organize MDI child windows in tabs. It covers tab groups, appearance, event handling, and saving and restoring layouts.
Key features
- 01Organize MDI windows in tabs
- 02Create resizable tab groups
- 03Configure tab positions, themes, and styles
- 04Handle tab events and menus
- 05Save and restore window layouts
Use cases
- 01Build a multi-document editor interface
- 02Group windows in a data analysis tool
- 03Create an MDI app with restorable layouts
- 04Implement a Visual Studio-style tabbed interface
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-tabbed-mdi-managerAfter installing, type/syncfusion-winforms-tabbed-mdi-managerin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/appearance-and-styling.mdbutton-settings.mdevents-and-interaction.mdgetting-started.mdserialization-and-state.mdtab-alignment.mdtab-groups.mdtab-styles-and-themes.mdDetails
From the project READMEImplementing Syncfusion Windows Forms TabbedMDIManager
The TabbedMDIManager is a powerful Windows Forms control that provides a modern tabbed interface for Multiple Document Interface (MDI) applications. It replaces the default Cascade/Tiled modes with a professional tabbed layout similar to Visual Studio .NET IDE.
When to Use This Skill
Use this skill whenever you need to:
- Create tabbed MDI interfaces for desktop applications
- Organize multiple child windows as tabs
- Support multiple tab groups with resizable splitters
- Customize tab appearance, colors, fonts, and styles
- Apply professional themes (Office 2007/2016, Metro, etc.)
- Handle tab events and user interactions
- Save and restore application layout using serialization
- Configure button controls (close, dropdown)
- Enable tooltips and context menus
- Align tabs in different positions (top, bottom, left, right)
Component Overview
Key Features:
- ✅ Multiple tab groups with splitter support
- ✅ 15+ built-in themes and tab styles
- ✅ Individual and dynamic tab control
- ✅ Complete customization of colors, fonts, and appearance
- ✅ Serialization support (XML, Binary, Isolated Storage)
- ✅ Event-driven architecture
- ✅ Tooltip and context menu support
- ✅ Button controls (close button, dropdown)
- ✅ RTL support
- ✅ Tab alignment (Top, Bottom, Left, Right)
Documentation Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation and NuGet package setup
- Assembly references required
- Adding control via designer and code
- Creating first MDI child form
- Attaching to MDI container
- Basic usage patterns
Tab Alignment & Positioning
📄 Read: references/tab-alignment.md
- Align tabs to Top, Bottom, Left, or Right
- TabControlAdded event usage
- Positioning tabs in different orientations
- Changing alignment dynamically
Tab Groups & Organization
📄 Read: references/tab-groups.md
- Creating multiple tab groups
- Resizing groups with splitters
- Horizontal and vertical arrangements
- Controlling number and layout of groups
- Associating forms with specific tab groups
- Creating custom tabbed layouts
Button Configuration
📄 Read: references/button-settings.md
- Dropdown button visibility and styling
- Close button configuration
- Individual tab close buttons
- Middle mouse button click to close
- Customizing button colors
- ShowCloseButtonForForm method usage
Appearance & Styling
📄 Read: references/appearance-and-styling.md
- Tab text and icon configuration
- 15+ tab styles (2D, 3D, Office, Metro, etc.)
- Active/inactive tab colors
- Custom fonts for tabs
- Icon sizes and positioning
- Tab panel customization
- Border and background colors
Tab Styles & Themes
📄 Read: references/tab-styles-and-themes.md
- All available tab styles overview
- Office 2007/2016 color schemes
- OneNote and Metro styles
- IE7 and WhidbeyStyle options
- Window layout styles (Cascade, Tile, etc.)
- Switching between styles dynamically
- Office2007ColorScheme property
Events & Interaction
📄 Read: references/events-and-interaction.md
- BeforeMDIChildAdded event
- TabControlAdded and TabControlAdding events
- TabControlRemoved event
- BeforeDropDownPopup event
- UnLockingMdIClient event
- Event-driven customization
- Context menu customization
- Tooltip support
Serialization & State Management
📄 Read: references/serialization-and-state.md
- Save tab group layout using AppStateSerializer
- Load saved layouts on application startup
- Serialization formats (XML, Binary, Isolated Storage)
- Memory stream serialization
- ClearSavedTabGroupState usage
- Singleton pattern for AppStateSerializer
- Restoring application state
Quick Start Example
// Step 1: Add namespace
using Syncfusion.Windows.Forms.Tools;
// Step 2: Create TabbedMDIManager
TabbedMDIManager tabbedMDIManager = new TabbedMDIManager();
// Step 3: Configure MDI container
this.IsMdiContainer = true;
tabbedMDIManager.AttachToMdiContainer(this);
// Step 4: Apply theme
tabbedMDIManager.ThemesEnabled = true;
tabbedMDIManager.TabStyle = typeof(Syncfusion.Windows.Forms.Tools.TabRendererOffice2016White);
// Step 5: Enable buttons
tabbedMDIManager.CloseButtonVisible = true;
tabbedMDIManager.DropDownButtonVisible = true;
// Step 6: Create child window
Form childForm = new Form() { Text = "Document 1", MdiParent = this };
childForm.Show();
Common Patterns
Pattern 1: Multiple Tab Groups
// Create multiple tab groups by using TabbedGroupedMDIManager
TabbedGroupedMDIManager tabbedMDIManager = new TabbedGroupedMDIManager();
tabbedMDIManager.AttachToMdiContainer(this);
// Forms added will be grouped as tabs
Form doc1 = new Form() { Text = "Document 1", MdiParent = this };
Form doc2 = new Form() { Text = "Document 2", MdiParent = this };
doc1.Show();
doc2.Show();
Pattern 2: Custom Tab Styling
// Handle TabControlAdded to customize each tab group
tabbedMDIManager.TabControlAdded += (sender, args) =>
{
args.TabControl.Alignment = TabAlignment.Bottom;
args.TabControl.Font = new Font("Arial", 10, FontStyle.Bold);
};
Pattern 3: Save & Restore Layout
// On application close: Save layout
AppStateSerializer serializer = new AppStateSerializer(SerializeMode.XMLFile, "AppState");
tabbedMDIManager.SaveTabGroupStates(serializer);
serializer.PersistNow();
// On application startup: Load layout
AppStateSerializer serializer = new AppStateSerializer(SerializeMode.XMLFile, "AppState");
tabbedMDIManager.LoadTabGroupStates(serializer);
Pattern 4: Custom Context Menu
// Add custom items to tab context menu
using Syncfusion.Windows.Forms.Tools.XPMenus;
ParentBarItem contextMenu = new ParentBarItem();
BarItem customItem = new BarItem() { Text = "Custom Action", MergeOrder = 30 };
contextMenu.Items.Add(customItem);
tabbedMDIManager.ContextMenuItem = contextMenu;
Key Properties Summary
| Property | Purpose | Example |
|---|---|---|
ThemesEnabled | Enable/disable theme support | tabbedMDIManager.ThemesEnabled = true; |
TabStyle | Set tab visual style | typeof(TabRenderer2D) to TabRendererOffice2016Black |
CloseButtonVisible | Show/hide close button | true to show close button |
DropDownButtonVisible | Show/hide dropdown button | true to show dropdown |
ShowCloseButton | Individual close buttons per tab | true for per-tab close buttons |
ShowCloseButtonForActiveTabOnly | Close button only on active tab | true to limit to active tab |
UseIconsInTabs | Display icons in tab headers | true to show icons |
ImageSize | Size of tab icons | new Size(16, 16) |
ActiveTabBackColor | Active tab background | Color.Blue |
TabBackColor | Inactive tab background | Color.Gray |
ActiveTabFont | Active tab font style | new Font("Arial", 10, FontStyle.Bold) |
TabFont | Inactive tab font style | new Font("Arial", 10) |
Alignment | Tab position (via TabControl) | TabAlignment.Bottom, Left, Right |
CloseOnMiddleButtonClick | Middle mouse button closes tabs | true to enable |
Common Use Cases
Use Case 1: Visual Studio Style MDI
Create a professional MDI application with tabbed layout, multiple tab groups, and VS-like appearance.
Use Case 2: Document Editor
Build a multi-document editor with tabs for each open document, themes, and serialization to restore previous session.
Use Case 3: Data Analysis Tool
Create an application with multiple analysis tabs, groupable by functionality with custom styling.
Use Case 4: Project Management
Build a UI with different task tabs, customizable appearance, and persistent layout across sessions.
Next Steps
- Start with Getting Started to set up your first TabbedMDI application
- Explore Tab Groups if you need multiple resizable document areas
- Customize Appearance for professional theming and styling
- Add Interactivity with events and context menus
- Implement Serialization to save user preferences and layouts
Additional Resources
- Official API Reference: TabbedMDIManager
- Assembly Dependencies: Syncfusion.Tools.Windows, Syncfusion.Shared.Windows