zoukankan      html  css  js  c++  java
  • Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能

    场景

    Winform中实现ZedGraph的多条Y轴(附源码下载):

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100132245

    在上面实现显示多条自定义Y轴的效果上,改进实现自定义新增Y轴功能。

    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    示例代码下载

    https://download.csdn.net/download/badao_liumang_qizhi/11653210

    实现

    主窗体添加按钮,点击之后弹出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();
                }
            }

    效果

  • 相关阅读:
    阅读笔记 The Impact of Imbalanced Training Data for Convolutional Neural Networks [DegreeProject2015] 数据分析型
    web网站——apache和nginx对比02
    web网站——理论01
    云计算openstack——云计算、大数据、人工智能(16)
    yum管理——ningx部署私有repo源(4)
    zabbix-web监控
    zabbix-自定义监控
    zabbix-邮件报警
    zabbix-自动发现并监控
    web网站——nginx,LNMP部署03
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11452481.html
Copyright © 2011-2022 走看看