C# Winform 入门(4)之动图显示

先看效果


1.搭建页面

Chart 控件 timer button

Chart属性 Series => ChartType

  • Cloumn 柱状图
  • Point 点状图
  • Area 面积图
  • Pie 饼状图
  • Candlestick 烛台形
  • Radar 雷达
  • Spline 线条曲线

Timer => Interval =>300

2. 实例化

cs 复制代码
List<double>dataForChatDisp=new List<double>() { 3,1,4,5,9};

3.封装表格方法

cs 复制代码
 private void Disp_charts()
 {
     chart1.Series[0].Points.DataBindY(dataForChatDisp);
     chart2.Series[0].Points.DataBindY(dataForChatDisp);
     chart3.Series[0].Points.DataBindY(dataForChatDisp);
     chart4.Series[0].Points.DataBindY(dataForChatDisp);
     chart5.Series[0].Points.DataBindY(dataForChatDisp);
     chart6.Series[0].Points.DataBindY(dataForChatDisp);
     chart7.Series[0].Points.DataBindY(dataForChatDisp);
 }

4.随机生成实例

cs 复制代码
Random random = new Random();
double dataNext;

5.窗体加载

cs 复制代码
 private void Form1_Load(object sender, EventArgs e)
 {
     timer1.Enabled=false;
     Disp_charts();
 }

6.计时器刻度

cs 复制代码
 private void timer1_Tick(object sender, EventArgs e)
 {
     dataNext = random.Next(10);
     dataForChatDisp.RemoveAt(0);
     dataForChatDisp.Add(dataNext);
     Disp_charts();
 }

7.按钮功能实现

cs 复制代码
 private void btnforchat_Click(object sender, EventArgs e)
 {
     timer1.Enabled = true;
     
 }

功能

cs 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _04.ForChatDisp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        List<double>dataForChatDisp=new List<double>() { 3,1,4,5,9};
        Random random = new Random();
        double dataNext;
        private void Disp_charts()
        {
            chart1.Series[0].Points.DataBindY(dataForChatDisp);
            chart2.Series[0].Points.DataBindY(dataForChatDisp);
            chart3.Series[0].Points.DataBindY(dataForChatDisp);
            chart4.Series[0].Points.DataBindY(dataForChatDisp);
            chart5.Series[0].Points.DataBindY(dataForChatDisp);
            chart6.Series[0].Points.DataBindY(dataForChatDisp);
            chart7.Series[0].Points.DataBindY(dataForChatDisp);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            dataNext = random.Next(10);
            dataForChatDisp.RemoveAt(0);
            dataForChatDisp.Add(dataNext);
            Disp_charts();
        }

        private void btnforchat_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled=false;
            Disp_charts();
        }
    }
}
相关推荐
小此方2 小时前
「C++AI大模型接入SDK」(一) API接入与本地两种方式对比、API Key获取、API报文详解与简单API的构建
开发语言·c++·人工智能
wuyk5552 小时前
Python实战项目02:学生成绩管理系统(控制台|CSV导出|完整落地)
开发语言·python
浪子明X9 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
xiangyun6112 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun6112 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
唐青枫13 小时前
对象到底住在哪里?C#.NET 托管堆从分配、GC 到内存排查
c#·.net
白远山13 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
DevRay14 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom14 小时前
C++学习<1>程序分区
开发语言·c++
醉颜凉15 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言