mcpField
S
syncfusion-winforms-tabbed-form

syncfusion-winforms-tabbed-form

github.com/syncfusion设计与 UI257 次安装1 周前更新
代码仓库

关于 syncfusion-winforms-tabbed-form

用于通过 Syncfusion SfTabbedForm 在 Windows Forms 中构建选项卡界面的技能,涵盖标题栏选项卡、选择与导航、拖放重排及可定制的选项卡上下文菜单。

主要功能

  1. 01选项卡可置于标题栏或其下方
  2. 02选项卡选择与变更事件
  3. 03内置导航按钮
  4. 04拖放重排选项卡
  5. 05可定制的选项卡上下文菜单
  6. 06溢出时平滑滚动

适用场景

  1. 01通过选项卡组织设置页面
  2. 02展示多个文档或报告
  3. 03将数据录入表单拆分为多个部分
  4. 04构建浏览器式选项卡管理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-tabbed-form

安装后在 Claude Code 中输入/syncfusion-winforms-tabbed-form确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
context-menu.md
customization.md
drag-and-drop.md
getting-started.md
tab-navigation.md
tab-selection.md

详细介绍

实现 Syncfusion Windows Forms 选项卡式窗体

Syncfusion 选项卡式窗体(SfTabbedForm)为 Windows Forms 应用程序提供选项卡式用户界面。用户可以添加任意数量的选项卡,每个选项卡都可以包含任意数量的控件。选项卡可以加载到窗体标题栏中,也可以显示在标题栏下方。

何时使用此技能

在需要以下功能时使用此技能:

  • 在 Windows Forms 应用程序中创建选项卡式用户界面
  • 将标准窗体转换为与标题栏集成的选项卡式窗体
  • 实现多文档界面(MDI)的替代方案
  • 添加选项卡管理功能(添加、关闭、重新排序选项卡)
  • 以编程方式处理选项卡选择和导航
  • 启用拖放式选项卡重新排序
  • 自定义选项卡的上下文菜单(类似 Web 浏览器)

主要功能

  • 轻松导航:内置导航按钮(第一个、最后一个、下一个、上一个、下拉)
  • 选项卡管理:使用关闭按钮关闭选项卡,并以编程方式控制选项卡
  • 拖放:通过拖动重新排序选项卡
  • 标题栏集成:在标题栏中或标题栏下方显示选项卡
  • 上下文菜单:可自定义选项卡的右键菜单
  • 平滑滚动:选项卡溢出时提供平滑滚动

文档和导航指南

入门

📄 阅读: references/getting-started.md

  • 程序集部署和依赖项
  • 将标准窗体转换为 SfTabbedForm
  • 将 TabbedFormControl 加载到窗体中
  • 向控件添加选项卡(TabPageAdv)
  • 配置标题栏集成(ExtendTabsToTitleBar)
  • 基本选项卡设置和初始化
选项卡选择

📄 阅读: references/tab-selection.md

  • 以编程方式选择(SelectedIndex、SelectedTab 属性)
  • SelectedIndexChanging 事件(支持取消)
  • SelectedIndexChanged 事件
  • 事件处理模式
  • 限制选项卡选择
选项卡导航

📄 阅读: references/tab-navigation.md

  • TabPrimitiveMode 属性配置
  • 内置导航按钮(FirstTab、LastTab、NextTab、PreviousTab、DropDown)
  • TabPrimitiveClick 事件处理
  • 自定义导航控件
  • 处理选项卡溢出情况
拖放

📄 阅读: references/drag-and-drop.md

  • 启用拖放(AllowDraggingTabs 属性)
  • TabDragging 事件和 TabDraggingEventArgs
  • TabDraggingAction 状态(DragStarting、DragDropping)
  • 取消特定选项卡的拖动
  • 阻止选项卡重新排序到特定位置
上下文菜单

📄 阅读: references/context-menu.md

  • TabContextMenu 属性
  • 使用 ContextMenuStrip 创建自定义上下文菜单
  • 使用 ContextMenuOpening 事件动态自定义菜单
  • 浏览器风格的上下文菜单(关闭、关闭其他所有选项卡、关闭右侧选项卡)
  • 有条件地启用或禁用菜单项
自定义

📄 阅读: references/customization.md

  • 用于标题栏集成的 ExtendTabsToTitleBar 属性
  • 选项卡外观和样式选项
  • TabbedFormControl 属性和配置
  • 自定义选项卡标题

快速入门示例

基本选项卡式窗体设置
using Syncfusion.Windows.Forms.Tools;

public partial class Form1 : SfTabbedForm
{
    private SfTabbedFormControl tabbedFormControl;
    
    public Form1()
    {
        InitializeComponent();
        
        // Create and configure the tabbed form control
        tabbedFormControl = new SfTabbedFormControl();
        
        // Add tabs
        TabPageAdv tabPageAdv1 = new TabPageAdv();
        TabPageAdv tabPageAdv2 = new TabPageAdv();
        tabPageAdv1.Text = "Document1";
        tabPageAdv2.Text = "Document2";
        
        tabbedFormControl.Tabs.Add(tabPageAdv1);
        tabbedFormControl.Tabs.Add(tabPageAdv2);
        
        // Add control to form
        this.Controls.Add(tabbedFormControl);
        this.TabbedFormControl = tabbedFormControl;
    }
}
VB.NET 示例
Imports Syncfusion.Windows.Forms.Tools

Partial Public Class Form1
    Inherits SfTabbedForm
    Private tabbedFormControl As SfTabbedFormControl
    
    Public Sub New()
        InitializeComponent()
        
        ' Create and configure the tabbed form control
        tabbedFormControl = New SfTabbedFormControl()
        
        ' Add tabs
        Dim tabPageAdv1 As New TabPageAdv()
        Dim tabPageAdv2 As New TabPageAdv()
        tabPageAdv1.Text = "Document1"
        tabPageAdv2.Text = "Document2"
        
        tabbedFormControl.Tabs.Add(tabPageAdv1)
        tabbedFormControl.Tabs.Add(tabPageAdv2)
        
        ' Add control to form
        Me.Controls.Add(tabbedFormControl)
        Me.TabbedFormControl = tabbedFormControl
    End Sub
End Class

常见模式

模式 1:在标题栏下方显示选项卡
public Form1()
{
    InitializeComponent();
    
    // Disable extending tabs to title bar
    this.ExtendTabsToTitleBar = false;
    
    // Setup tabbed control as usual
    tabbedFormControl = new SfTabbedFormControl();
    // ... add tabs
}
模式 2:启用拖放和导航
public Form1()
{
    InitializeComponent();
    
    tabbedFormControl = new SfTabbedFormControl();
    
    // Enable drag and drop
    tabbedFormControl.AllowDraggingTabs = true;
    
    // Add navigation buttons
    tabbedFormControl.TabPrimitiveMode = TabPrimitiveMode.DropDown | 
                                         TabPrimitiveMode.FirstTab | 
                                         TabPrimitiveMode.LastTab;
    
    // ... add tabs
}
模式 3:以编程方式选择选项卡
// Select by index
this.tabbedFormControl.SelectedIndex = 1;

// Or select by tab reference
this.tabbedFormControl.SelectedTab = tabPageAdv2;
模式 4:包含关闭选项的上下文菜单
public Form1()
{
    InitializeComponent();
    
    tabbedFormControl = new SfTabbedFormControl();
    
    // Setup context menu
    ContextMenuStrip tabContextMenu = new ContextMenuStrip();
    tabContextMenu.Items.Add("Close", null, OnCloseMenuClicked);
    tabContextMenu.Items.Add("Close all but this", null, OnCloseAllMenuClicked);
    
    tabbedFormControl.TabContextMenu = tabContextMenu;
    tabbedFormControl.ContextMenuOpening += TabbedFormControl_ContextMenuOpening;
    
    // ... add tabs
}

主要属性和事件

核心属性
  • TabbedFormControl:包含选项卡的主控件
  • ExtendTabsToTitleBar:用于在标题栏中显示选项卡的布尔值(默认值:true)
  • SelectedIndex:所选选项卡的从零开始的索引
  • SelectedTab:所选 TabPageAdv 的引用
  • AllowDraggingTabs:启用或禁用选项卡拖放
  • TabPrimitiveMode:配置导航按钮
  • TabContextMenu:选项卡的自定义上下文菜单
关键事件
  • SelectedIndexChanging:选项卡选择更改前触发(可取消)
  • SelectedIndexChanged:选项卡选择更改后触发
  • TabPrimitiveClick:单击导航按钮时触发
  • TabDragging:拖动选项卡期间触发
  • ContextMenuOpening:上下文菜单显示前触发

常见用例

  1. 多文档界面:创建包含多个选项卡文档的应用程序
  2. 设置/选项对话框:将设置整理到多个选项卡页面中
  3. 数据录入表单:将复杂表单拆分为逻辑清晰的选项卡分区
  4. 报表查看器:在单独的选项卡中显示多个报表
  5. 代码编辑器:实现 IDE 风格的选项卡式文件编辑
  6. 浏览器风格的应用程序:创建类似 Web 浏览器的选项卡管理功能

程序集引用

添加对 Syncfusion.Tools.Windows 和 Syncfusion.Shared.Base 程序集的引用,或通过 NuGet 安装:

Install-Package Syncfusion.Tools.Windows

评论

支持 Markdown