急急急,麻烦大家,用ZedGraph,如何在任意一点显示提示文本

问题描述

希望能达到的效果是这样,就是鼠标在图的范围内滚动,然后也出现一个纵线和横线(这一点我目前实现了总线横线没实现),同时能显示在当前这个坐标下曲线图内的当前节点数值以及当前的x轴值(目前我开启IsShowCursorValues属性,但是他返回的是鼠标的坐标,并不是x和y上的值),就和股票软件差不多。我研究了一下应该是通过zedGraphControl1_CursorValueEvent事件处理器获取,但是还是找不到核心的值,感谢大家,谢谢!在控件板块没人理,所以在这里发一下,感谢大家!邀请并且感谢一下cfz379945430这位老师,因为他在http://bbs.csdn.net/topics/390841381这里的回答帮我解决了纵线的问题,转发一下也希望能帮助到其他朋友.另,我在另外的控件区也发了这个帖子,等了两天没有回复,因为急用,所以重新发一个,若有违反版规,版主请删除老的帖子,给你添麻烦了。

解决方案

解决方案二:
照你看到的帖子中修改加了Y轴线,不知是否正确,控件没加双缓冲,闪的厉害,没继续研究//鼠标移动时候显示坐标提示privatevoidzedGraphControl1_MouseMove(objectsender,MouseEventArgse){intx=e.X;inty=e.Y;using(Graphicsgc=zedGraphControl1.CreateGraphics())using(Penpen=newPen(Color.Gray)){pen.DashStyle=System.Drawing.Drawing2D.DashStyle.Dot;RectangleFrect=zedGraphControl1.GraphPane.Chart.Rect;if(rect.Contains(e.Location)){zedGraphControl1.Refresh();gc.DrawLine(pen,x,rect.Top,x,rect.Bottom);gc.DrawLine(pen,rect.Left,y,rect.Right,y);}}}
解决方案三:
IsShowCursorValue=true则显示坐标值
解决方案四:
引用2楼akuma8848的回复:

IsShowCursorValue=true则显示坐标值

感谢这位朋友,我把你的代码复制进去,果然可以出现横竖线了,现在还有一个问题就是显示数值,我想显示的不是坐标值,而是在这个位置的‘股价值’,比如我现在在的绝对坐标是x:10,y:20,x10上对应的数值是时间,y上则是对应的股价,其实想达到的效果就是类似IsShowPointValues=true;给出的数值,但是是希望结合上IsShowCursorValue=true的灵活性!再次谢谢你朋友!
解决方案五:
toolTip1.Show(x.ToString(),this,x,y);没找到zedgraph的设置那个点提示内容的地方,不过用tooltip也可以做,不过纵坐标估计得调整一下,目前效果是跨Y轴的。
解决方案六:
引用4楼akuma8848的回复:

toolTip1.Show(x.ToString(),this,x,y);没找到zedgraph的设置那个点提示内容的地方,不过用tooltip也可以做,不过纵坐标估计得调整一下,目前效果是跨Y轴的。

朋友想问下这句代码是放在那里的?谢谢你的回复!
解决方案七:
已经找到了,是放到zedGraphControl1_MouseMove里,但是他给出的那个string只是一个鼠标所属的坐标,我是希望鼠标挪动的时候可以显示{时间(x轴值),股价(y轴值)}这样的效果,不知道能不能实现。谢谢

时间: 2024-09-23 15:19:59

急急急,麻烦大家,用ZedGraph,如何在任意一点显示提示文本的相关文章

mysql-mySQL触发器编写,麻烦大神帮忙,急急急

问题描述 mySQL触发器编写,麻烦大神帮忙,急急急 例如一个表user 两个字段id和name,id为主键且自增.现在如果在user表里面插入一个数据,如果插入的name为 张三,那么再在这个表里插入一个name为 李四的记录.请问这个触发器怎么写.是mysql数据库 解决方案 create trigger trigger_变量名 on user for insert as insert into user values('李四'); go --过后在执行你的插入操作,在查询你就会发现数据里面

很急啊 大神-急急急,麻烦知道的回到一下

问题描述 急急急,麻烦知道的回到一下 android中怎么把程序卸载了之后打开流浪器,我在程序里面写了个卸载广播,别的程序卸载了我可以收到,但是自己的卸载了之后 我收不到了 该怎么做? 解决方案 急急求助,急急急!!!急急急

unity3D 求大神帮忙指点!!!!!!急急急

问题描述 unity3D 求大神帮忙指点!!!!!!急急急 unity场景里有三个cube 在plan上 选中其中一个后:在plan上点哪里选中的cube 就去那里!! 我不会的地方就是 这个选中的部分 !!!和选中后如何连接寻路那个script的地方!!麻烦大神指点!!!!! 解决方案 先用射线找到点到的那个物体 具体代码 RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physi

数据-多表关联按照一个地区插入到一张新表中。在线跪求各位大神,急急急!!!

问题描述 多表关联按照一个地区插入到一张新表中.在线跪求各位大神,急急急!!! 多表关联,我现有多张表,想将数据提取出来,按照一个地区插入到一张新表中,但是这些多张表,有的比如有西安,但是有的有没有西安,所以会造成数据的丢失,有什么好的方法可以解决?在线跪求各位大神,急急急!!! 解决方案 刚开始的的第一张表是没有西安的,informix库 解决方案二: 按照你说的要求,我觉得应该有张表的地区应该最为全面,就是说有一条主线可以将所有表都联立起来,然后可以以这张表为主表进行左联即可.. 解决方案三

两个页面之间如何传值,急急急

问题描述 两个页面之间如何传值,急急急 当选择,然后修改的时候,先跳转到另一个界面,然后把选中这条数据在显示出来,怎么实现啊. 以前都是通过ID什么的再查找数据库一遍, 解决方案 window.open打开连接地址附带上这条记录的id,页面接收id读取数据显示到你的控件里面,你的应该是easyUI? var rows=$('#xxxx').datagrid('getChecked'); if(rows.length==0){alert('请选择要修改的记录!');return} window.o

请大师们看下帮忙解决下此问题 急急急 感谢

问题描述 请大师们看下帮忙解决下此问题 急急急 感谢 每次在VS2012上第一次附加进程时是成功的,调试关闭后第二次附加进程就报图上的错误,如果把VS关闭了重启又能附加进程了,请问这应该怎么解决啊,每次附加进程都要重启VS感觉好麻烦啊 求各位大师指点啊 解决方案 急急急!!!哪位来帮忙啊!!!!!!关于提交socket的问题,请高手帮忙!急急急急.急急

管理-在选课信息表中建立选课触发器 简单些 用if else 明天就要交了急急急!!!

问题描述 在选课信息表中建立选课触发器 简单些 用if else 明天就要交了急急急!!! 建立学生信息表 create table student ( Stu_No BIGINT(80) PRIMARY KEY, Stu_Name VARCHAR(25) NOT NULL, Stu_Sex VARCHAR(2) NOT NULL, College VARCHAR(40) NOT NULL, Profession VARCHAR(40) NOT NULL, Class INT(10) NOT N

server-sql问题急急急,来大神解决

问题描述 sql问题急急急,来大神解决 SQL server求一行中数据的最小值,表的列数不固定,注意是一行不是一列,能只用函数解决是最好 解决方案 那你把一行数据读取出来放在某个容器里,然后比较大小,最后取出最小的不就行了. 解决方案二: 测试表为book1; 测试数据如下: 使用SQL语句如下: UPDATE A SET lv = B.x.value('min(//row/*)','int') FROM [master].[dbo].[book1] AS A CROSS APPLY (SEL

控件-mscomm串口波形绘制范例,求大神解析这三个函数,急急急,绘制波形图的原理是什么,拜托了

问题描述 mscomm串口波形绘制范例,求大神解析这三个函数,急急急,绘制波形图的原理是什么,拜托了 //串口void CPort_testDlg::OnComm() { //if(stop)return; VARIANT m_input1; COleSafeArray m_input2; long lengthi; BYTE data[600]; CString str; int ai=0bi=0ci=0di=0; int sum=0; if(m_Comm.GetCommEvent()==2)