上位机动态图表

目录

一 设计原型

二 后台源码


一 设计原型

二 后台源码

using Sunny.UI;

namespace 动态图表
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 300; i++)
            {
                string code = new Random().Next(90000, 45345345).ToString();
                string weight = new Random().Next(40, 100).ToString() + "kg";
                string C = new Random().Next(400, 1000).ToString() + "kg";
                string K = new Random().Next(800, 1200).ToString() + "mm";
                string G = new Random().Next(100, 120).ToString() + "mm";
                string X = new Random().Next(10, 120).ToString();
                string Y = new Random().Next(50, 120).ToString();
                string Z = new Random().Next(80, 120).ToString();
                string R = "OK";
                string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

                uiDataGridView1.Rows.Add(code, weight, C, K, G, X, Y, Z, dt, R);


                // 配置参数
                var option = new UIBarOption();
                // 配置标题
                option.Title = new UITitle();
                // 主标题
                option.Title.Text = "数据变化";
                // 副标题
                option.Title.SubText = "实时数据";

                // 设置图例
                option.Legend = new UILegend();
                // 图例水平布局
                option.Legend.Orient = UIOrient.Horizontal;
                // 图例放置在左上角
                option.Legend.Top = UITopAlignment.Top;
                option.Legend.Left = UILeftAlignment.Left;
                // 两个图例分别是Bar1和Bar2
                option.Legend.AddData("数据");
                option.Legend.AddData("时间");

                // 设置系列
                UIBarSeries series = new UIBarSeries();
                // 第一系列Bar1
                series.Name = "数据";
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                series.AddData(new Random().Next(10, 50));
                option.Series.Add(series);

                // 设置第二系列Bar2
                series = new UIBarSeries();
                series.Name = "时间";
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                series.AddData(new Random().Next(30, 50));
                option.Series.Add(series);

                // 设置横坐标内容
                // 第一系列和第二系列的元素交织分布
                // 所以Mon是指第一和二系列的第一个元素的横坐标
                // Tue指第一和二系列的第二个元素的横坐标
                option.XAxis.Data.Add("条码");
                option.XAxis.Data.Add("重量");
                option.XAxis.Data.Add("长度");
                option.XAxis.Data.Add("宽度");
                option.XAxis.Data.Add("高度");
                option.XAxis.Data.Add("X");
                option.XAxis.Data.Add("Y");
                option.XAxis.Data.Add("Z");
                option.XAxis.Data.Add("总结果");
                option.XAxis.Data.Add("时间");

                // 辅助ToolTip是否可见
                option.ToolTip.Visible = true;
                // Y轴的刻度
                option.YAxis.Scale = true;
                // XY轴的单位
                option.XAxis.Name = "日期";
                option.YAxis.Name = "数值";
                // 标记处上下限(数值超过了也没事)
                option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Red, Name = "上限", Value = 60 });
                option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Gold, Name = "下限", Value = 50 });
                // 更新坐标轴
                uiBarChart1.SetOption(option);

            }

        }
    }
}

SunnyUI.Net 是基于.Net Framework 4.0+、.Net Core3.1、.Net 5 框架的 C# WinForm 开源控件、工具类、扩展类、多页面开发框架。 源码编译环境:VS2019 16.8+,.Net5,.Net Core3.1 动态应用环境:VS2010及以上,.Net Framework 4.0及以上(不包括.Net Framework 4 Client Profile),.Net Core 3.1,.Net 5.0 推荐通过Nuget安装:Install-Package SunnyUI,或者通过Nuget搜索SunnyUI安装。 软件介绍: 1、开源控件 基于.Net Framework4.0,原生控件开发,参考 Element主题风格,包含 按钮、编辑框、下拉框、数据表格、工控仪表、统计图表在内的常用控件超过 50 个,满足常规开发需求,每个控件都精雕细琢,注重细节; 包含 Element 风格主题 11 个,其他主题 6 个,包含主题管理组件 UIStyleManager,可自由切换主题。 2、工具 收集整理开发过程中经常用到的工具类。 3、扩展 收集整理开发过程中经常用到的扩展类。 4、多页面框架 参考Element,包括7种常用框架风格,只需几行简单的代码即可创建多页面程序,其支撑组件包括UIForm,UIPage,UIFrame,集合常用控件即可快速开发WinForm应用程序。 SunnyUI.Net开发框架 更新日志: v3.0.2 UIMarkLabel:增加带颜色标签的Label UIRoundProcess:圆形滚动条 UIBreadcrumb:增加面包屑导航 UILedLabel:增加Led标签 UIHeaderButton:在工具箱中显示 UILineChart:支持拖拽选取放大 UIDateTimePicker:修复下拉选择日期后关闭的Bug UINavMenu:增加设置二级菜单底色 UIColorPicker:增加单击事件以选中颜色 UITitlePage:增加ShowTitle可控制是否显示标题 UINavBar:增加可设置背景图片 框架增加IFrame接口,方便页面跳转 UIDataGridView:修改垂直滚动条和原版一致,并增加翻页方式滚动 UIPagination: 修正因两次查询数量相等而引起的不刷新 UIHeaderButton: 增加字体图标背景时鼠标移上背景色 UITabControl:修改第一个TabPage关不掉的Bug UIDataGridView:增加EnterAsTab属性,编辑输入时,用Enter键代替Tab键跳到下一个单元格 UILineChart:增加鼠标框选放大,可多次放大,右键点击恢复一次,双击恢复 UITitlePanel:修复OnMouseMove事件 UITrackBar:增加垂直显示方式 UIFlowLayoutPanel:修改了一处因为其加入控件大小发生变化而引起的滚动条出错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_shenbing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值