这篇文章主要讲解了“C# Chart控件标记问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C# Chart控件标记问题怎么解决”吧!
我们来看一下解决的方法,我使用Chart控件里面对Point的MarkerStyle 进行标记,实现这样的方式,对MarkerStyle 的样式设置标记大小,标记颜色,以及标记展示的值,使用的是随机函数产生的数据,生成的表格,对表格的数据添加,然后在对这个点进行标记,只标记最新是使用标一个去一个的方式,就是我把最新的标记好,把上一个去掉标记,哪个按钮我只给了一个状态值让它去判断是最新还是一直标记,也可以加个状态不标记。后面贴了代码你们可以后期自己二次更新。
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; using System.Windows.Forms.DataVisualization.Charting; namespace TestIC00 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } public int index = 0; public bool flag = false; private void button1_Click(object sender, EventArgs e) { timer1.Enabled = !timer1.Enabled;//对定时器的操作,点击打开或关闭定时器,主要是实现一秒传一个值 } private void timer1_Tick(object sender, EventArgs e) { Random random = new Random(); this.chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 1;//网格间隔 this.chart1.ChartAreas[0].AxisX.MinorGrid.Interval = 1; this.chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 1;//网格间隔 this.chart1.ChartAreas[0].AxisY.MinorGrid.Interval = 1; this.chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;//设置X轴的值的间隔大小 this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;//设置X轴网格线颜色 this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//设置Y轴网格线颜色 chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;//启动滚动条 this.chart1.ChartAreas[0].AxisY.LabelStyle.Enabled = false;//使Y轴的刻度隐藏 chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last);//启用视图实现数据滚动 int value = random.Next(0, 20);//产生随机数进行赋值 chart1.Series[0].Points.AddY(value);//对折线图添加数据 if(flag)//判断标记,如果是true表示只标记最新,需要去掉前面的一个值 { this.chart1.Series[0].Points[index].MarkerStyle = MarkerStyle.Circle;//设置标记的形状为圆形 this.chart1.Series[0].Points[index].MarkerColor = Color.Red;//形状颜色设置 this.chart1.Series[0].Points[index].MarkerBorderWidth = 3;//形状大小设置 this.chart1.Series[0].Points[index].MarkerSize = 10;//设置我们展示标记的大小 this.chart1.Series[0].Points[index].Label = "功能:" + this.chart1.Series[0].Name + "\r\n" + "值:" + value.ToString();//对标记展示的值 this.chart1.Series[0].Points[index].IsValueShownAsLabel = true;//展示标记 this.chart1.Series[0].Points[index-1].MarkerBorderWidth = 0;//改前一个标记的大小 this.chart1.Series[0].Points[index - 1].MarkerSize = 0;//形状大小 this.chart1.Series[0].Points[index - 1].Label = "";//展示数据 this.chart1.Series[0].Points[index - 1].IsValueShownAsLabel = false;//不展示 } else//对数据一直标记 { this.chart1.Series[0].Points[index].MarkerStyle = MarkerStyle.Circle; this.chart1.Series[0].Points[index].MarkerColor = Color.Red; this.chart1.Series[0].Points[index].MarkerBorderWidth = 3; this.chart1.Series[0].Points[index].MarkerSize = 10; this.chart1.Series[0].Points[index].Label = "功能:" + this.chart1.Series[0].Name + "\r\n" + "值:" + value.ToString(); this.chart1.Series[0].Points[index].IsValueShownAsLabel = true; } //也可以加一种状态是什么也不标记,你们自己对那个状态值的处理就可以啦 index++; } private void button2_Click(object sender, EventArgs e)//只标记最新按钮 { flag = !flag;//对状态值的改变,我就使用了两种状态,你们可以改 } } }
感谢各位的阅读,以上就是“C# Chart控件标记问题怎么解决”的内容了,经过本文的学习后,相信大家对C# Chart控件标记问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。