Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能
程序员文章站
2022-08-08 18:18:39
场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100132245 在上面实现显示多条自定义Y轴的效果上,改进实现自定义新增Y轴功能。 关注公众号霸道的程序猿获取 ......
场景
winform中实现zedgraph的多条y轴(附源码下载):
https://blog.csdn.net/badao_liumang_qizhi/article/details/100132245
在上面实现显示多条自定义y轴的效果上,改进实现自定义新增y轴功能。
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
示例代码下载
实现
主窗体添加按钮,点击之后弹出y轴设置界面。
private void button12_click(object sender, eventargs e) { addy = new addy(); addy.show(); }
其中addy是对应要弹窗显示的窗体对象,其设计如下
此窗体有两个edittext,用来存储y轴的上下限,然后使用radiogroup用来设置标题的选择,然后使用
coloreditpicker进行颜色的选择,以上的控件都是使用的devexpress的控件。
在点击新增按钮时将控件上的所有属性赋值给声明的yaxis对象。
private void button1_click(object sender, eventargs e) { yaxis y = new yaxis(); //标题 y.title.text = this.radiogroup1.text; //颜色 y.color = this.colorpickedit1.color; //下限 y.scale.min = double.parse(this.textedit1.text); //上限 y.scale.max = double.parse(this.textedit2.text); if (setyaxisevent != null) { setyaxisevent(y); } }
这里使用的是事件与委托进行跨窗体传递对象。
在addy当前页面代码中
//委托的定义 public delegate void setyaxisdelegete(yaxis s); //事件声明 public static event setyaxisdelegete setyaxisevent;
然后在主页面form1中的初始化方法中进行委托的订阅
//添加y轴 addy.setyaxisevent += new addy.setyaxisdelegete(addyaxis);
此时传递了addyaxis方法名
方法代码:
public void addyaxis(yaxis y) { //如果是新增第二条y轴 if (ycount == 1) { //第二条y轴标题 mypane.y2axis.title.text = y.title.text.tostring(); //第二条y轴下限 mypane.y2axis.scale.min = y.scale.min; //第二条y轴上限 mypane.y2axis.scale.max = y.scale.max; //设置颜色 mypane.y2axis.color = y.color; //设置刻度线字体颜色 mypane.y2axis.scale.fontspec.fontcolor = y.color; //设置标题字体颜色 mypane.y2axis.title.fontspec.fontcolor = y.color; //让第二条y轴显示 mypane.y2axis.isvisible = true; ycount++; //关闭窗口 addy.close(); zedgraphcontrol1.invalidate(); } //否则就是新增第三条及以上 else { //int yindex = mypane.yaxislist.count+1; // 创建第yindex条y轴 yaxis yaxisnew = new yaxis(y.title.text.tostring()); yaxisnew.scale.min = y.scale.min; yaxisnew.scale.max = y.scale.max; //设置y轴颜色 yaxisnew.color = y.color; //设置刻度线字体颜色 yaxisnew.scale.fontspec.fontcolor = y.color; //设置标题字体颜色 yaxisnew.title.fontspec.fontcolor = y.color; //yaxisnew.type = axistype.text; //显示小刻度 是false则看不到效果 //yaxisnew.minorgrid.isvisible = true; // turn off the opposite tics so the y2 tics don't show up on the y axis //关闭相反的tics,使y2 tics不会显示在y轴上 yaxisnew.majortic.isinside = true; yaxisnew.minortic.isinside = true; yaxisnew.majortic.isopposite = true; yaxisnew.minortic.isopposite = true; // align the y2 axis labels so they are flush to the axis //对齐y2轴标签,使其与轴平齐 //yaxisnew.scale.align = alignp.inside; //添加到y轴的list mypane.yaxislist.add(yaxisnew); //关闭窗口 addy.close(); zedgraphcontrol1.invalidate(); } }
效果
下一篇: docker 笔记