如何在C#窗体中使用实时图表,这里需要用到Chart控件。先看下Demo效果图:

一、创建Winform窗体,并找到Chart控件

Chart控件,目前仅在.net framework下才有,.net core下暂时还没有。所以本文针对的环境是.net framework下的winform窗体。

如上图,在工具箱中找到“数据”->“Chart”控件。请注意,在“所有Windows窗体”那里,是找不到Chart控件的。

二、将Chart控件拖入到窗体中

然后设置Dock属性为Fill,效果如下图所示:

三、创建X轴变量名

如上图,找到Series属性,它表示X轴的变量,可以设置多个的,作为演示,我们仅选择简单的入门为主,即只使用一个X轴变量。

我们设置Series属性,名称叫做“次数”,图形使用连线方式。“确定”后效果如下图:

四、我们生成一些随机金额

为了让图表动态起来,我们假设每次的付款金额是有一个随机值的,那么X轴就是次数, Y轴就是每次的付款金额。

我们搞一个“启动”按钮在上面,双击该按钮,写入一些业务代码:

https://p1.pstatp.com/origin/pgc-image/5e183308f8bb4e0dae7497dd14fc7652using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;using System.Windows.Forms.DataVisualization.Charting;namespace WindowsFormsApp2{    public partial class BetForm : Form    {        ///         /// 过往的金额        ///         private readonly List _pastMoney;        private double _maxAxisY, _minAxisY;        public BetForm()        {            InitializeComponent();            this._pastMoney = new List();        }        private void button1_Click(object sender, EventArgs e)        {            //启动一个后台线程            Task.Run(() =>            {                Random random = new Random();                for (; ; )                {                    //生成一个四舍五入带2位小数点的随机金额                    double yValue = Math.Round(random.NextDouble() * 100, 2, MidpointRounding.AwayFromZero);                    this.UpdateChart(yValue);                }            });        }        ///         /// 每秒钟不停的更新图形,最多允许5个节点        ///         ///         private void UpdateChart(double totalMoney)        {            this.Invoke(new Action(() =>            {                Series serie = this.chart1.Series[0];                serie.Points.SuspendUpdates();                if (serie.Points.Count == 5)                {                    serie.Points.RemoveAt(0);                    this._pastMoney.RemoveAt(0);                    this._maxAxisY = this._pastMoney.Max(q => q);                    this._minAxisY = this._pastMoney.Min(q => q);                }                if (this._maxAxisY < totalMoney)                {                    this._maxAxisY = totalMoney;                }                if (this._minAxisY > totalMoney)                {                    this._minAxisY = totalMoney;                }                //不断的更新图表的最大值和最小值范围,使得折线图总是显示最好看。                this.chart1.ChartAreas[0].AxisY.Maximum = _maxAxisY;                this.chart1.ChartAreas[0].AxisY.Minimum = _minAxisY;                //仅修改Y轴的值                serie.Points.AddY(totalMoney);                serie.Points.ResumeUpdates();                this._pastMoney.Add(totalMoney);            }));            Thread.Sleep(1000);        }    }}

上面是完整代码,您可以直接复制使用。

五、最后看下demo效果图

c# winform gridview 动态按钮_C#窗体Winform,使用实时图表:折线图、柱状图相关推荐

  1. ECharts 折线图柱状图混合双Y轴 利用ajax动态获取后台数据

    效果图示如下 后台代码用的框架是SSM 双Y轴根据后台数据展示 大致代码如下: List<Map> findqushi(@Param("date_id") String ...

  2. 用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+智能web端高保真大数据动态可视化大屏看板+中国动态地图+智慧电商实时动态数据大屏看板

    作品内容:用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+web端高保真大数据动态可视化大屏看板+中国动态地图+电商实时动态数据大屏看板 ...

  3. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换 springboot项目

    本文参考地址:https://blog.csdn.net/u014427811/article/details/100771314 在参考文章的基础上,增加了模板样例 模板样例地址 百度网盘 链接:h ...

  4. echarts简单使用、echarts通过计时器进行动态更新数据、echarts连接数据库实时更新数据

    1.echarts引入 在官网下载并放入项目中. 引入echarts.js文件: <script src="./echarts.js"></script> ...

  5. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换、更新内置Excel数据、更新插入的文本框内容、合并表格单元格;

    本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展.感谢被参考的妹子.另外该博客 ...

  6. winform按钮切换页面_C#如何通过一个按钮实现窗体界面的中英文切换?

    C#如何通过一个按钮实现窗体界面的中英文切换? 2020 - 8 - 17 TAG : 一.窗体的国际化解决方案新建一个WinForm解决方案后,选择主窗体,右击查看属性,找到Localizable属 ...

  7. c#点击按钮调出另一个窗体_在类库或winform项目中打开另一个winform项目窗体的方法...

    本文实例讲述了在类库或winform项目中打开另一个winform项目窗体的方法.分享给大家供大家参考.具体如下: 一.问题: 假设类库或winform项目为A,另一个winform项目为B.那麽在A ...

  8. c# winform 扁平化窗口_C# 如何在winform窗体自定义一个扁平化控件(转)

    标签:art   扁平化   一个   winform   最小   none   协议   ati   最小化 需求说明:如图所示 步骤: (1)   FormBorderStyle 设置为 Non ...

  9. winform中动态生成控件

    最近做winform程序,算是第一次做winform项目吧,记录一下. 本文介绍了如何在一个winform程序中动态创建控件,以下的代码片段演示了在一个pannel容器中动态生成button的功能.详 ...

  10. 使用C# winform 制作一个按钮可自适应屏幕大小的 简易加减乘除计算器

    一:成果物     不多展示,,,我们开始吧.. 二: 窗体包含内容 2.1 显示屏部分组成 显示屏部分由两个组件组成,一个是方便操作的panel控件位于顶部,且为了使其显示屏在改变窗体大小时一直位于 ...

最新文章

  1. android 视频 截图,java – android获取当前视频的截图
  2. Uboot分析(三)
  3. 使用SpringMVC 的MultipartFile文件上传时参数获取的一个坑
  4. iterm2 保存阿里云登陆并防止断开连接
  5. laravel 模型(2)
  6. 海明码编码和校验原理与实现【转载】
  7. [javase] 1.请从键盘随机输入10个整数保存到List中,并按倒序、从大到小的顺序显示出来...
  8. AUC评价指标的理解以及其为何能衡量二分类模型优劣——复习篇
  9. web 系统发展历程
  10. ppt将画好的箭头改为直线
  11. 计算机凭证打印格式设置,打印凭证怎么设置纸张
  12. JAVA SE 13快速安装
  13. node.js解析word文档
  14. python方差膨胀因子_讲讲共线性问题
  15. 分表添加字段,添加注释,存储过程及游标
  16. 有一篇文章,共有3行文字,每行有最多80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
  17. 五年从程序员到架构师的职业规划
  18. 自由职业需要我们知道什么呢?
  19. 龙芯mips64el 微信客户端 ubuntu 微信客户端
  20. 盲盒商城小程序如何实现盲盒玩法

热门文章

  1. xampp 无法启动appche mysql
  2. 习题9.38 查找字符串中的数字、字母
  3. Java后台框架篇--Spring与Restful风格API接口开发
  4. Java sychronized关键字总结(一)
  5. Java常见排序算法之快速排序详解
  6. Linux 常用ping命令详解
  7. 【转载】【原创】贵在,难在,成在
  8. 【Linux学习010】算数运算、文件测试、字符测试、位置变量和特殊变量
  9. XHML教会我的一些东西-5
  10. [Android]-图片JNI(C++\Java)高斯模糊的实现与比较