公司有个需求,需要做嵌入式开发,跟硬件通信,把数据实时展示到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. 前端人脸识别框架Tracking.js与JqueryFaceDetection

    这篇文章主要就介绍两种前端的人脸识别框架(Tracking.js和JqueryFaceDetection) 技术特点 Tracking.js是使用js封装的一个框架,使用起来需要自己配置许多的东西,略 ...

  2. windows查看端口占用、结束进程

    在开发中难免会遇到windows的端口被占用,现在我们来查看端口的占用和结束占用端口的进程. win+r 输入cmd进入命令提示符: 比如我们要查看8080端口的占用情况,输入netstat -aon ...

  3. scala学习手记19 - Option类型

    看到Option类型就知道这本教材应该要说那个了. 使用过guava后,应该知道guava中的Optional类的作用是什么.算了找下原始文档好了: Optional<T> is a wa ...

  4. 2017版:KVM 性能优化之内存优化

    我们说完CPU方面的优化,接着我们继续第二块内容,也就是内存方面的优化.内存方面有以下四个方向去着手: EPT 技术 大页和透明大页 KSM 技术 内存限制 1. EPT技术 EPT也就是扩展页表,这 ...

  5. 使用springmvc的时候报错NoSuchBeanDefinitionException: No qualifying bean of type

    NoSuchBeanDefinitionException: No qualifying bean of type 其实我至今都不知道错误的根源在哪里,<context:component-sc ...

  6. Java Redis Pipeline 使用示例

    1. 参考的优秀文章 Request/Response protocols and RTT 2. 来源 原来,系统中一个树结构的数据来源是Redis,由于数据增多.业务复杂,查询速度并不快.究其原因, ...

  7. 百度之星2017初赛A-1006-度度熊的01世界

    度度熊的01世界 Accepts: 967 Submissions: 3064 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...

  8. sizeof结构体

    规则1:结构体的对折长度为其基本数据成员的长度的最大值. 规则2:指定边界情况下,结构体的对折长度为自身对折长度和指定对折长度中较小者. 规则3:当行内结构体的基本数据成员的起始地址必须为其长度的整数 ...

  9. Sqlite/ FMDB

    Sqlite 1. Sqlite数据库 > 数据库? 按数据结构来组织,存储和管理数据的仓库. > 关系型数据库:使用二维表及其之间的联系组织成一个数据组织. 关系:可以理解为一张二维表, ...

  10. dubbo-monitor安装、 监控中心 配置过程

    简单介绍下monitor: Simple Monitor挂掉不会影响到Consumer和Provider之间的调用,所以用于生产环境不会有风险. 配置好了之后可以结合admin管理后台使用,可以清晰的 ...