公司有个需求,需要做嵌入式开发,跟硬件通信,把数据实时展示到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. Eclipse 添加JSP模板

    0.环境 Eclipse IDE for Java EE Developers (4.3.2) win8.1系统 1.原因 Eclipse自带新建JSP为: <%@ page language= ...

  2. Android开发中的logcat工具使用

    http://os.51cto.com/art/200905/126051.htm 用adb直接查看log:    adb logcat 清除之前的log: adb logcat -c 加过滤查看lo ...

  3. JavaWeb -- Struts2 ResultType细化, 国际化

    1. ResultType细化 <result-types> <result-type name="chain" class="com.opensymp ...

  4. JNIjw06

    1.VC6(CPP)的DLL代码: #include<stdio.h> #include "jniZ_JNIjw06.h" // 全局变量 jfieldID g_pro ...

  5. PHP服务器变量$_SERVER

    常用的就几个,自己print_r($_SERVER); 看看. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv ...

  6. LeetCode第[69]题(Java):Sqrt(x)

    题目:求平方根 难度:Easy 题目内容: Compute and return the square root of x, where x is guaranteed to be a non-neg ...

  7. redis key 通配符 查询相应的key

    keys pattern 查询相应的key 在redis里,允许模糊查询key 有3个通配符 *, ? ,[] *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符 redis  ...

  8. python urllib2库的简单总结

    urllib2的简单介绍参考网址:http://www.voidspace.org.uk/python/articles/urllib2.shtml Fetching URLsThe simplest ...

  9. C语言小知识点汇集

    1. 三元表达式“?:”冒号两边的两个操作数类型必须一致. 2. 枚举变量的sizeof值同int型一样为4. 3. 为了消除不必要的计算 &&两侧的表达式,当左侧即第1个表达式不成立 ...

  10. 在SQL Server中快速删除重复记录

     在SQL Server中快速删除重复记录 2006-07-17 21:53:15 分类: SQL Server 开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询 ...