如何在.NET电子表格应用程序中创建流程图

前言

流程图是一种常用的图形化工具,用于展示过程中事件、决策和操作的顺序和关系。它通过使用不同形状的图标和箭头线条,将任务和步骤按照特定的顺序连接起来,以便清晰地表示一个过程的执行流程。

在企业环境中,高管和经理利用流程图来规划业务流程,使他们能够识别瓶颈、优化生产力并增强决策能力……用例列表不胜枚举。然而,一个新的问题出现了,这些流程图由谁来维护?流程图如何共享或协作?使用什么软件来创建它们?

为了解决上述的问题,今天小编就为大家介绍如何在.NET WinForms 应用程序中使用电子表格设计器组件在运行时创建形状操作流程图。

在.NET WinForms 中创建流程图

在.NET WinForms 中创建流程图可分为以下8个步骤:

  1. 设置.NET WinForms 项目
  2. 启用增强形状引擎
  3. 将形状添加到电子表格流程图
  4. 将文本添加到形状
  5. 将形状添加到电子表格流程图
  6. 将样式应用到形状
  7. 分组流程图形状
  8. 在 .NET WinForms 应用程序中保存并显示流程图

1.设置.NET WinForms 项目

打开Visual Studio软件,创建Windows 窗体应用程序并选择.NET6作为框架。

创建项目后,使用 NuGet 管理器安装GrapeCity.Spread.WinForms和GrapeCity.Spread.WinForms.Design。

安装完之后,导航到项目Form1.cs的设计器:

在 VS Designer 中,找到工具箱中的FpSpread和FpSpreadDesigner组件。将FpSpread组件拖放到窗体上,然后对FpSpreadDesigner组件执行相同的操作。接下来,在表单上添加一个按钮。

如果想要在运行时显示 FpSpreadDesigner,在 Forms1.cs 文件的按钮单击事件中调用 Spread Designer API 的 ShowDialog方法即可。

private void button2_Click(object sender, EventArgs e){fpSpreadDesigner2.ShowDialog(fpSpread2);}

2.启用增强形状引擎

项目设置完之后,必须启用增强形状引擎。默认情况下它不可用。这可以通过代码或设计器来完成。下面是两种启用增强形状引擎的方法:

(1)代码启用

// 启用形状引擎    fpSpread2.Features.EnhancedShapeEngine = true;

(2)使用设计器启用

要使用 Designer 的 UI 启用此属性,首先启动 Designer 应用程序。然后,使用 Spread 设计器的右侧面板,从下拉列表中选择Spread,查找Features,展开它,并将EnhancedShapeEngine更改为“True”。

3.将形状添加到电子表格流程图

使用 Spread Designer 的“插入”选项卡,选择“形状”下拉列表。

添加流程图。(添加完之后如下图所示)

4.将文本添加到形状

5.将形状添加到电子表格流程图

将鼠标悬停在连接器箭头的抓柄上,鼠标光标会发生变化。光标发生变化后,单击连接器端点并将其拖动到要连接的第一个形状的边框。然后看到连接点出现在您将连接器拖动到的形状上,显示可以锚定它的位置。选择位置后,您将看到连接点变为绿色,表明线条已连接到形状。

连接完之后的样式:

6.将样式应用到形状

此步骤介绍如何应用样式主题以及如何将自定义样式应用于形状。用户可以使用“形状格式”选项卡的“形状样式”部分自定义形状的背景颜色和轮廓颜色。

对于本例,流程图形状和连接器的样式如下:

7.分组流程图形状

对流程图形状进行分组可确保所有相关元素保持在一起并保持其预期布局,从而降低意外修改的风险。Spread 的设计器支持使用上下文菜单和/或工具栏的“组对象”按钮将形状分组在一起。

操作步骤如下方动图所示:

8.在 .NET WinForms 应用程序中保存并显示流程图

设计完流程图之后,就可以将设计器中的电子表格应用到 WinForms 应用程序了。在 Designer 的工具栏上,导航至“文件”菜单,选择“应用”和“退出”以应用所有更改,然后退出 Spread Designer。用户可以重新打开设计器并对流程图进行更改。

最终还可以将应用程序中创建的 .NET 流程图导出为 Excel (.XLSX) 文件,或使用 Spread Designer 的导入和导出功能导入现有的 Excel 文件流程图。

总结

至此,一个流程图的设置就完成了。

扩展链接:

ChatGPT赋能低代码开发:打造智能应用的双重引擎

窗口函数大揭秘!轻松计算数据累计占比,玩转数据分析的绝佳利器

3D模型+BI分析,打造全新的交互式3D可视化大屏开发方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142632.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】模拟实现内存函数

本篇文章目录 相关文章1. 模拟 memcpy 内存拷贝2. 模拟 memmove 内存移动 相关文章 【C语言】数据在内存中是以什么顺序存储的?【C语言】整数在内存中如何存储?又是如何进行计算使用的?【C语言】利用void*进行泛型编程【C语言】4.指针类型部…

关于MATLAB R2022b中MATLAB function没有edit data选项的解决办法

问题描述 在MATLAB 2022b的simulink中双击MATLAB function,出来的是这个界面,而不是跳转到MATLAB的编辑窗口。因此就找不到edit data选项,没法完成新建data store memory 全局变量。 解决办法: 点击 编辑数据 按钮 在弹出的窗…

孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署

原创 | 文 BFT机器人 1、华为孟晚舟新发声,华为发布“全面智能化”战略 上周三(9月30号)上午,华为全联接大会2023正式在上海举行,作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声!在演讲上&am…

力扣刷题-链表-链表相交

02.07. 链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返…

基于springboot+vue的大学生科创项目在线管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

海大校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

海大校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

WARNING:tensorflow:Your input ran out of data; interrupting training. 解决方法

问题详情: WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least steps_per_epoch * epochs batches (in this case, 13800 batches). You may need to use the repeat() funct…

【数据结构-树】哈夫曼树

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

汽车电子——产品标准规范汇总和梳理(自动驾驶)

文章目录 前言 一、分级 二、定位 三、地图 四、座舱 五、远程 六、信息数据 七、场景 八、智慧城市 九、方法论 总结 前言 见《汽车电子——产品标准规范汇总和梳理》 一、分级 《GB/T 40429-2021 汽车驾驶自动化分级》 《QC/T XXXXX—XXXX 智能网联汽车 自动驾…

C语言动态内存管理malloc、calloc、realloc、free函数的讲解

一.为什么存在动态内存管理: 我们知道,在此之前向内存申请空间的方式有以下两种:(变量和数组) 但这两种方法有几个缺陷: ①:空间开辟大小是固定的; ②:数组在声明的时候&…

Qt扫盲-QSqlQueryModel理论总结

QSqlQueryModel理论总结 一、概述二、使用1. 与 view 视图 绑定2. 分离视图,只存数据 一、概述 QSqlQueryModel是用于执行SQL语句和遍历结果集的高级接口。它构建在较低级的 QSqlQuery之上,可用于向QTableView 等视图类提供数据,也是使用了Q…

微信开发者工具appdata\local\微信开发者工具有啥用,能删掉吗?占用空间8G

你好这边 微信开发者工具\User Data 存储的都是一些用户开发者在工具的一些数据存储,不建议全部删除,这样可能你较常用的一些项目记录和缓存信息就会找不到,如果需要清理的话,可以考虑删除: WeappApplication 应用更新…

【Java 基础篇】Java 接口组成与更新详解

在Java编程中,接口(interface)是一种非常重要的概念。它允许类定义一组抽象方法,这些方法可以在不同的类中实现。接口在Java中起到了重要的角色,被广泛应用于代码的组织和设计中。本文将详细解释Java接口的组成和最新的…

QT 绘画功能的时钟

.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent> #include <QDebug> //信息调试类 #include <QPainter> #include <QPixmap> //图像引擎类 #include <QTime> #include <QTimer> …

crypto:password

题目 下载题目所给的压缩包后解压&#xff0c;可得到文本提示信息 根据key提示&#xff0c;密码为十位 再结合生日和姓名的长度刚好十位&#xff0c;推测密码的组合为姓名字母&#xff0b;生日的组合排列 经过尝试 key为zs19900315 即得flag

详解Nacos和Eureka的区别

文章目录 Eureka是什么Nacos是什么Nacos的实现原理 Nacos和Eureka的区别CAP理论连接方式服务异常剔除操作实例方式自我保护机制 Eureka是什么 Eureka 是Spring Cloud 微服务框架默认的也是推荐的服务注册中心, 由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用…

crypto:摩丝

题目 根据题目所给的压缩包下载后解压&#xff0c;打开文本提示 摩斯密码&#xff0c;对照表可解码得到flag

【RabbitMQ实战】06 3分钟部署一个RabbitMQ集群

一、集群的安装部署 我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群&#xff0c;开始。 前提条件&#xff0c;docker安装了docker-compose。如果没安装的话&#xff0c;参考这里 docker-compose文件参考bitnami官网&#xff1a;https://github.com/bitnami/contai…

tsar-性能监控工具

简介 tsar是淘宝自己开发的一个采集工具&#xff0c;主要用来收集服务器的系统信息&#xff08;如cpu&#xff0c;io&#xff0c;mem&#xff0c;tcp等&#xff09;&#xff0c;以及应用数据&#xff08;如squid haproxy nginx等&#xff09;。收集到的数据存储在磁盘上&#…

机器人中的数值优化|【四】L-BFGS理论推导与延伸

机器人中的数值优化|【四】L-BFGS理论推导与延伸 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化&#xff0c;拟牛…