您的位置:首页 > 编程语言 > C#

C# chart,有关如何在鼠标移动到Series上时显示节点及数据 (有待继续更新)

2016-09-11 19:16 1901 查看

一、效果与思路

效果:

private void chartControl4_MouseMove(object sender, MouseEventArgs e)
{
ChartHitInfo hitInfo = chartControl4.CalcHitInfo(e.Location);
StringBuilder builder = new StringBuilder();
if (hitInfo.InDiagram)
builder.AppendLine("In diagram");
if (hitInfo.InNonDefaultPane)
builder.AppendLine("In non-default pane: " + hitInfo.NonDefaultPane.Name);
if (hitInfo.InAxis)
{
builder.AppendLine("In axis: " + hitInfo.Axis.Name);
if (hitInfo.AxisLabelItem != null)
builder.AppendLine("  Label item: " + hitInfo.AxisLabelItem.Text);
if (hitInfo.AxisTitle != null)
builder.AppendLine("  Axis title: " + hitInfo.AxisTitle.Text);
}
if (hitInfo.InChartTitle)
builder.AppendLine("In chart title: " + hitInfo.ChartTitle.Text);
if (hitInfo.InLegend)
builder.AppendLine("In legend");
if (hitInfo.InSeries)
builder.AppendLine("In series: " + ((Series)hitInfo.Series).Name);
if (hitInfo.InSeriesLabel)
{
builder.AppendLine("In series label");
builder.AppendLine("  Series: " + ((Series)hitInfo.Series).Name);
}
if (hitInfo.SeriesPoint != null)
{
builder.AppendLine("  Argument: " + hitInfo.SeriesPoint.Argument);
if (!hitInfo.SeriesPoint.IsEmpty)
builder.AppendLine("  Value: " + hitInfo.SeriesPoint.Values[0]);
}
if (builder.Length > 0)
toolTipController.ShowHint("Hit-testing results:\n" + builder.ToString(), chartControl4.PointToScreen(e.Location));
else
toolTipController.HideHint();
}


View Code
MouseLeave事件代码

private void chartControl4_MouseLeave(object sender, EventArgs e)
{
toolTipController.HideHint();
}




3.另一种鼠标移动显示信息的方法,用CustomDrawCrosshair事件,从别人那里学习的。这种还可以显示图片。

private void chartControl4_CustomDrawCrosshair(object sender, CustomDrawCrosshairEventArgs e)
{

foreach (CrosshairElement element in e.CrosshairElements)
{
SeriesPoint point = element.SeriesPoint;
element.LabelElement.MarkerImage = Image.FromFile(@"F:\Resources\Add.png");// 设置图片路径
element.LabelElement.MarkerImageSizeMode = ChartImageSizeMode.Stretch;
element.LabelElement.MarkerSize = new Size(100, 100); // 大小
element.LabelElement.Text = point.Values[0].ToString();//显示要显示的文字
}
}




这里有devexpress用CustomDrawCrosshair事件显示点信息的DemoHow
to: Show a Tooltip with a Series Point's Data

参考

1.hustaiyayawinform chart控件鼠标悬停显示Y值

2.黄大仙儿c#—devexpress chartcontrol 鼠标点击chart上的点事件,鼠标移动显示值,2014-3。

3. c# chart 鼠标放在数据点上出现的小提示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐