欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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是对应要弹窗显示的窗体对象,其设计如下

Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能

 

 

此窗体有两个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();
            }
        }

 

效果

Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能

 

 

Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能

 

 

Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能