找回密码
 立即注册

QQ登录

只需一步,快速开始

JudgeLight

注册会员

3

主题

5

帖子

22

积分

注册会员

积分
22
最新发帖
JudgeLight
注册会员   /  发表于:2016-8-25 16:21  /   查看:3901  /  回复:3
本帖最后由 JudgeLight 于 2016-8-25 16:26 编辑

您好!小弟最近在做c1chart图表,遇到一个问题:我用次方法添加X轴数值,想要c1chart的tooltip显示x轴和y轴的文本值,可是效果是y轴能显示文本值,x轴显示的是索引值,以下是部分代码,求如何纠正,谢谢!
for (int i = 0; i <days; i++)
                    {
                        ax.ValueLabels.Add(i, DateTime.Now.AddHours(i - days).ToString("yyyy-MM-dd"));
                    }
---------------------------------
  foreach (KeyValuePair<string, PointF[]> kv in dicData)
                {
                    ChartDataSeries series = c1Chart1.ChartGroups[0].ChartData.SeriesList.AddNewSeries();
                    series.PointData.CopyDataIn(kv.Value);
                    series.FillStyle.Color1 = ColorValue[colorIndex];
                    series.Label = PositionName(kv.Key, lstTempersBind);
                    series.AutoEnumerate = true;
                    series.LegendEntry = true;
                    series.LineStyle.Thickness = 1;
                    series.SymbolStyle.Shape = SymbolShapeEnum.Diamond;
                    series.SymbolStyle.Size = 9;
                    series.SymbolStyle.OutlineWidth = 1;
                    series.SymbolStyle.Color = ColorValue[colorIndex];
                    series.TooltipText = "监测时间:{#XVAL}" + '\r' + '\n' + "监测温度:{#YVAL}℃";
                    //series.TooltipTextLegend = "监测环境:{#TEXT}";
                    colorIndex++;
                }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-8-25 17:58:01
沙发
谢谢您提供的代码。
XValue显示的是轴的值,而您在轴上展示的是Label自定义标签(日期)。
我理解你的需求是Tooltip显示日期?
这里不能使用默认的Tooltip,而是需要自定义。
根据获取到的index,传入到ValueLabels,就可以获取到对应的Label。
比如:c1Chart1.ChartArea.AxisX.ValueLabels[index];

自定义的基本思路:
1.使用MouseMove事件,在该事件里展示tooltip
2.在MouseLeave事件里隐藏Tooltip

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
JudgeLight
注册会员   /  发表于:2016-8-26 10:17:59
板凳
Alice 发表于 2016-8-25 17:58
谢谢您提供的代码。
XValue显示的是轴的值,而您在轴上展示的是Label自定义标签(日期)。
我理解你的需 ...

谢谢您的回复,思路有了。
请教在MouseMove事件中,如何获取到X轴index呢,并且展示tooltip?
参考了一下示例DataStyl中的代码:
if(grp.CoordToDataIndex(e.X, e.Y, focus, ref s, ref p, ref d))
                                {
                                        if(s >=0 && p >= 0 && d <= minDist)
                                                footerText = string.Format("Index({0},{1})",s,p);
                                }
可总是获取不到s,始终是0,求指教谢谢!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-8-26 12:23:26
地板
JudgeLight 发表于 2016-8-26 10:17
谢谢您的回复,思路有了。
请教在MouseMove事件中,如何获取到X轴index呢,并且展示tooltip?
参考了一 ...

你看下随机安装示例,里面有详细的代码,路径如下:
\Documents\ComponentOne Samples\WinForms\C1Chart\CS\Tooltip
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部