场景

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 == )
{
//第二条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轴上下限、颜色、标题功能的更多相关文章

  1. Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置

    场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1001322 ...

  2. Winform中设置ZedGraph多条Y轴时与多条曲线一一对应

    场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1001322 ...

  3. Winforn中设置ZedGraph多条Y轴时曲线刻度不均匀问题解决

    场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1001322 ...

  4. Winform中实现ZedGraph不显示y=0这条刻度线

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  5. 史上最全Winform中使用ZedGraph教程与资源汇总整理(附资源下载)

    场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...

  6. Winform中设置多条Y轴时新增的Y轴刻度不显示问题解决

    场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1001322 ...

  7. Winform中设置ZedGraph鼠标悬浮显示举例最近曲线上的点的坐标值和X轴与Y轴的标题

    场景 Winform中设置ZedGraph鼠标双击获取距离最近曲线上的点的坐标值: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...

  8. Winform中设置ZedGraph鼠标滚轮缩放的灵敏度以及设置滚轮缩放的方式(鼠标焦点为中心还是图形中心点)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  9. Winform中设置ZedGraph的曲线符号Symbol以及对应关系

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

随机推荐

  1. CodeForces 526D Om Nom and Necklace

    洛谷题目页面传送门 & CodeForces题目页面传送门 给定字符串\(a\),求它的每一个前缀,是否能被表示成\(m+1\)个字符串\(A\)和\(m\)个字符串\(B\)交错相连的形式, ...

  2. C++11以上的新特性整理

    1.nullptr void foo(char *); void foo(int);foo(NULL) //编译出错,不知道调用哪个,可能调用了foo(int)foo(nullptr) //ok ,调 ...

  3. HashMap源码分析之面试必备

    ​ 今天我们就面试会问到关于HashMap的问题进行一个汇总,以及对这些问题进行解答. 1.HashMap的数据结构是什么? 2.为啥是线程不安全的? 3.Hash算法是怎样实现的? 4.HashMa ...

  4. 基于Visual C#的AutoCAD开发——一些网址

    https://blog.csdn.net/xwebsite/article/details/5578446 http://www.cadgj.com/?p=1504

  5. Go_ go mod 命令解决墙的问题

    简介 由于众所周知的原因,在下载一些库的时候会下载不了,比如 golang.org/x/... 相关的库.为此,网上出现了很多解决方案. 从 Go1.11 开始,Go 引入了 module,对包进行管 ...

  6. 【win10主机】连接virtualbox上【32位winXP系统虚拟机】上启动的mysql

    问题Q: 在virtualbox上启动winXP系统虚拟机后,启动含oa项目的tomcat,数据库服务也运行起来了,虚拟机上连接无误: 在上一篇<主机访问 虚拟机启动的项目>基础上,尝试连 ...

  7. 上个月,我赚了2W外快。。。

    前段时间和室友一起给某个公司做了一个管理系统,每个人分2W多.这里和大家分享一下做完项目后一点点感受,想到啥就说点啥. 核心竞争力 两个月就挣了2W块,挣了我爸妈两个人一年的收入,每天还贼辛苦,披星戴 ...

  8. 利用peerjs轻松玩转webrtc

    随着5G技术的推广,可以预见在不久的将来网速将得到极大提升,实时音视频互动这类对网络传输质量要求较高的应用将是最直接的受益者.而且伴随着webrtc技术的成熟,该领域可能将成为下一个技术热点,但是传统 ...

  9. 【spring-boot 源码解析】spring-boot 依赖管理

    关键词:spring-boot 依赖管理.spring-boot-dependencies.spring-boot-parent 问题 maven 工程,依赖管理是非常基本又非常重要的功能,现在的工程 ...

  10. 从强转 byte 说起

    折腾的心,颤抖的手,只因在 main 函数中执行了一次 int 强转 byte 的操作,输出结果太出所料,于是入坑,钻研良久,遂有此篇. 我们都知道,Java中有8中基本数据类型,每种类型都有取值范围 ...