公司有个需求,需要做嵌入式开发,跟硬件通信,把数据实时展示到winform中,网上查了资料,先写下个demo备用,到时候接入socket通信就完成了,具体效果如图

实现的原理是把最开始的数据去掉,加入新的数据,接着不停的绑定曲线数据,就能达到曲线实时展示的效果了

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
lb_shebei.Text = "等待设备连接";
c1.ChartAreas[].Axes[].MajorGrid.Enabled = false;//X轴上网格
c1.ChartAreas[].Axes[].MajorGrid.LineDashStyle = ChartDashStyle.Dash; //y轴网格类型 短横线
c1.ChartAreas[].Axes[].MajorGrid.LineColor = Color.Gray;//Y轴网格线颜色
c1.ChartAreas[].Axes[].MajorTickMark.Enabled = false;// x轴上突出的小点
c1.ChartAreas[].AxisX.Enabled = AxisEnabled.False;//设置x轴不显示
c1.ChartAreas[].Axes[].MajorTickMark.Enabled = false;//y轴上突出的小点
c1.ChartAreas[].Axes[].IsInterlaced = false; //显示交错带
//c1.ChartAreas[0].Axes[0].LabelStyle.Format = "#年"; //设置X轴显示样式
c1.Series[].IsValueShownAsLabel = true;//曲线点是否显示值
c1.Legends[].Docking = Docking.Bottom;//调整图例位置
c1.Legends[].Alignment = StringAlignment.Center;//调整图例位置
c1.Series[].ChartType = SeriesChartType.Spline;//图表类型
c1.Series[].MarkerStyle = MarkerStyle.None; //标记点类型
c1.Series[].XValueType = ChartValueType.Time;//x轴坐标类型
c1.Series[].Name = "应力监测";
//c1.Series[0].IsValueShownAsLabel = true;//显示数值 Thread t1 = new Thread(MyLine);
t1.IsBackground = true;
t1.Start();
}
List<DateTime> xlist = new List<DateTime>();
List<int> ylist = new List<int>();
void BindData()
{
Random rd = new Random();
DateTime dt = DateTime.Now;
ylist.Add(rd.Next(-, ));
xlist.Add(dt);
if (xlist.Count > )
{
ylist.Remove(ylist[]);
xlist.Remove(xlist[]);
}
}
public void MyLine()
{
while (true)
{
BindData();
BindZp(xlist, ylist);
Thread.Sleep();
}
}
delegate void SetXCallback(List<DateTime> x, List<int> y);
void BindZp(List<DateTime> x, List<int> y)
{
if (c1.InvokeRequired)
{
SetXCallback d = new SetXCallback(BindZp);
this.Invoke(d, new object[] { x, y });
}
else
{
c1.Series[].Points.DataBindXY(x, y);//绑定数据
}
}
private void btn_out_Click(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show("正在数据传输,确定要退出吗?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
Application.Exit();
this.Dispose();
this.Close();
}
}
}

c#winform图表控件使用示例的更多相关文章

  1. asp.net微软图表控件使用示例

    <configuration> <system.webServer> <handlers> <remove name="ChartImageHand ...

  2. 二十六、【开源框架】EFW框架Winform前端开发之Grid++Report报表、条形码、Excel导出、图表控件

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan ...

  3. .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll

    这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通过它,可让您的项目及报表,轻松套用 ...

  4. 微软Charting图表控件 System.Web.UI.DataVisuliztion.Charting

    一.概述 基于.NET Framework 3.5 SP1的图表控件--Chart,可在WinForm和WebForm下使用!需要引入System.Web.DataVisualization.dll ...

  5. 问题:MSChart.exe;结果:微软图表控件MsChart使用方法及各种插件下载地址

    微软图表控件MsChart使用方法及各种插件下载地址 (2012-08-10 17:32:33) 转载▼ 标签: 图表 控件 下载地址 kernel32 微软 it 分类: C# 昨天在网上看到了微软 ...

  6. ASP.NET Core MVC TagHelper实践HighchartsNET快速图表控件-开源

    ASP.NET Core MVC TagHelper最佳实践HighchartsNET快速图表控件支持ASP.NET Core. 曾经在WebForms上写过 HighchartsNET快速图表控件- ...

  7. 图表控件的学习===》hightChart 和 Chartjs的使用

    hightChart : 比较旧的图表控件   商业需要授权 Chartjs 免费开源 刚开始使用了下 hightchart 然后参考示例 建了对应的参数配置的类, 也顺利的集合到后台动态传输.  后 ...

  8. .net CHARTING图表控件下载地址

    .net CHARTING是一款功能强大的图表控件,利用.NET framework和GDI+为工作于ASP.NET和Winform的C#和VB.NET开发人员提供可托管的图表解决方案,提供了多种2D ...

  9. echart图表控件配置入门(一)

    现在主流的web图表控件主要有hightchart.fusionchart.echart: echart作为百度前端部门近期推出的一个基于html5的免费图表控件,以其丰富图表类型和良好的兼容性速度得 ...

随机推荐

  1. 间隔问题,合并间隔(merge interval),插入间隔(insert interval)

    Merge Interval: Given a collection of intervals, merge all overlapping intervals. For example,Given  ...

  2. java.util.logging.Logger_01

    1.参考网址 1.1.java.util.logging.Logger使用详解 http://lavasoft.blog.51cto.com/62575/184492 1.2.Java内置Logger ...

  3. php:Mcrypt响应慢的原因解决备注

    作者: Laruence 本文地址: http://www.laruence.com/2012/09/24/2810.html 转载请注明出处 上午的时候, 有同事来找我说上周新上线的一个使用mcry ...

  4. unity 使用MVC模式

    这两天看了下老大的项目,他基本都是用MVC模式,写的很好,在此把我理解的记录下来 Model:实体对象(对应数据库记录的类) View:视图 presenter(controller):业务处理 vi ...

  5. 图片与路径(Path)的应用

    图片的应用:软盘样式的保存按钮,笔记本样式的编辑按钮:只能用图片 路径(Path)的应用:异形轮廓(各种气泡框,普通控件无法描述):异形线条(普通控件无法描述):图片(不建议,因为展现效果不好,比如: ...

  6. poj3311 状压dp+floyd

    先floyd预处理一遍dis,枚举所有状态,dp[ i ] [ j ]表示 以  j  为终点的状态 i 使用最小的时间 #include<map> #include<set> ...

  7. Pro C/C++ 编程中值得注意的问题

    1.宿主字符串存储Oracle自动补零问题. EXEC SQL BEGIN DECLARE SECTION; unsigned char liId[25]; EXEC SQL END DECLARE ...

  8. JAVA Eclipse 快捷键

    一.  最常见的: a)       内容提示:Alt + / b)       快速修复:Ctrl + 1 c)        导包:Ctrl + shift + O d)       格式化代码块 ...

  9. iOS-免证书真机调试

     使用方法: 1.新建一个普通的项目 2.进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,) 3.在Accounts选项卡添加自己的Apple ...

  10. 【Python】词典

    词典 (dictionary).与列表相似,词典也可以储存多个元素.这种储存多个元素的对象称为容器(container) 基本概念 常见的创建词典的方法: >>>dic = {'to ...