[V17新特性]将Spread Ribbon 工具栏控件集成到Spread应用程序中
本帖最后由 Richard.Ma 于 2024-4-7 16:51 编辑Spread.NET V17中新增了一个独立Ribbon 工具栏控件,可以用于Spread工作簿的编辑。
新增的Ribbon 工具栏控件提供了类似于Excel样式和行为的Ribbon UI。功能上包括了上下文行为,命令执行,错误处理以及完整的自定义选项,使开发人员可以轻松的直接在应用程序中提供最终用户熟悉的Excel外观样式。
在这篇教程中,将介绍如何将Spread Ribbon 工具栏控件集成到 WinForms 应用程序中
使用C#添加电子表格功能栏控件到Winforms应用程序的步骤
[*]创建 WinForms .NET 8 应用程序
[*]在表单上添加 .NET 电子表格组件
[*]使用 C# 将功能区栏控件附加到 .NET 电子表格实例
[*]自定义Ribbon:通过代码自定义 .NET 电子表格功能区栏控件
下载示例Demo
1.创建 一个.NET 8 WinForms 应用程序
在Visual Studio 2022中,创建一个新项目并选择其下包含C#的Windows窗体应用。接下来,下载最新的 Spread.NET 版本并将其安装在您的计算机上。有关入门的更多信息,请参阅我们的快速入门文档。或者,可以通过 NuGet 获取Spread.NET,搜索“GrapeCity-Software.Spread.WinForms”,然后选择安装
2.在表单上添加 .NET 电子表格组件
从 VS 工具箱中,将FpSpread组件拖放到窗体上。根据需要调整电子表格:https://cdn.mescius.io/umb/media/gi0o5vyf/add-net-spreadsheet-to-winforms-app.gif?rmode=max&width=754&height=377您已成功将 Spread.NET 组件添加到 WinForms 项目中。
3.将功能区栏控件附加到 .NET 电子表格实例
从 VS 工具箱中,将 RibbonBar工具栏组件拖放到电子表格实例顶部的窗体上。在Form1.cs文件中,添加以下代码以生成默认的 RibbonBar 项目和行为,并将RibbonBar工具栏控件附加到 Spreadsheet 组件:
using GrapeCity.Spreadsheet.WinForms.Ribbon;
namespace RibbonBarControl
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ribbonBar1.GenerateDefaultItems();
// Attach ribbonBar control to FpSpread control
ribbonBar1.Attach(fpSpread1);
}
}
}
https://cdn.mescius.io/umb/media/soak3aqn/add-ribbon.gif?rmode=max&width=744&height=372
运行 WinForms 应用程序,可以看到Ribbon Bar 控件和 .NET Spreadsheet 实例正在协同工作,允许最终用户轻松导入/导出和修改 Excel 电子表格。https://cdn.mescius.io/umb/media/yhwhgdxj/run-app-with-ribbon-bar-and-net-spreadsheet.gif?rmode=max&width=750&height=375
4.通过代码自定义 .NET 电子表格Ribbon工具栏控件
Spread.NET的Ribbon Bar控件支持通过API进行定制。控件本身由执行指定命令或操作的不同选项卡项组成。RibbonBar 的选项卡中提供了各种类型的组项目,例如工具栏、菜单、选项卡项目、图标等。开发人员可以添加、删除或修改功能区栏项以满足用户的需求。
以下示例代码包括1.添加新选项卡(Tab)2.在选项卡中添加新组(Group)3.在组中添加新的项目(Item),你可以添加各种类型的Item,例如最常见的RibbonButton4.通过CommandExecuting 事件定义了按钮对应的Command在执行的时候的逻辑代码
using GrapeCity.Spreadsheet;
using GrapeCity.Spreadsheet.WinForms.Ribbon;
namespace RibbonBarControl
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ribbonBar1.GenerateDefaultItems();
// Attach ribbonBar control to FpSpread control
ribbonBar1.Attach(fpSpread1);
// Add custom items on ribbonBar
ribbonBar1.Attach(fpSpread1);
ribbonBar1.Tabs.Add(new GrapeCity.Spreadsheet.WinForms.Ribbon.RibbonTab());
ribbonBar1.Tabs.Text = "New Tab";
ribbonBar1.Tabs.Groups.Add(new RibbonGroup());
ribbonBar1.Tabs.Groups.Text = "New Group";
ribbonBar1.Tabs.Groups.Items.Add("New Item");
ribbonBar1.Tabs.Groups.Items.Name = "test";
ribbonBar1.Tabs.Groups.Items["test"].CommandName = "Orientation";
ribbonBar1.Tabs.Groups.Items["test"].CommandParameter = 30;
ribbonBar1.Tabs.Groups.Items.Visible = false;
((RibbonButton)ribbonBar1.Tabs.Groups.Items).Text = "New Name";
ribbonBar1.CommandExecuting += RibbonBar1_CommandExecuting; ;
}
private void RibbonBar1_CommandExecuting(object? sender, ExecuteCommandEventArgs e)
{
if (e.CommandName == "Orientation")
{
//e.Handled = true;//如果是要取消内置Command的默认操作,可以设置e.Handled = true
MessageBox.Show("Orientation Command is executing ");
}
}
}
}
https://cdn.mescius.io/umb/media/3xndugyt/customzie.gif?rmode=max&width=756&height=378
页:
[1]