我正在使用Dashboard系统,我在WinForms中使用折线图。我需要在每一行显示tooptip。我试过这个
var series = new Series
{
Name = chartPoint.SetName,
Color = chartPoint.ChartColor,
ChartType = SeriesChartType.Line,
BorderDashStyle = chartPoint.ChartDashStyle,
BorderWidth = chartPoint.BorderWidth,
IsVisibleInLegend = !chartPoint.HideLegend,
ToolTip = "Hello World"
};
但它不适合我
答案 0 :(得分:3)
您有两个选项可以使用Chart控件接受的Keywords
。
myChart.Series[0].ToolTip = "Name #SERIESNAME : X - #VALX{F2} , Y - #VALY{F2}";
在Chart
控件中,Keyword
是一个字符序列,在运行时被替换为自动计算的值。有关Chart控件接受的关键字的完整列表,请查看Keyword reference
或
如果你想要更奇特的东西,你必须处理事件GetToolTipText
this.myChart.GetToolTipText += new System.Windows.Forms.DataVisualization.Charting.Chart.ToolTipEventHandler(this.myChart_GetToolTipText);
现在我不确定你想在ToolTip上显示什么,但你可以相应地添加逻辑。假设您要显示系列中DataPoints
的值
private void myChart_GetToolTipText(object sender, System.Windows.Forms.DataVisualization.Charting.ToolTipEventArgs e)
{
switch(e.HitTestResult.ChartElementType)
{
case ChartElementType.DataPoint:
e.Text = myChart.Series[0].Points[e.HitTestResult.PointIndex]).ToString()
+ /* something for which no keyword exists */;
break;
case ChartElementType.Axis:
// add logic here
case ....
.
.
default:
// do nothing
}
答案 1 :(得分:1)
经过一些RnD我在Line Series上获得了工具提示,但仍然混淆了为什么它不能使用这个解决方案。 这是解决方案
series.ToolTip = string.Format("Name '{0}' : X - {1} , Y - {2}", chartPoint.SetName, "#VALX{F2}",
"#VALY{F2}");
mainChartControl.GetToolTipText += ChartControlGetToolTipText;
private void ChartControlGetToolTipText(object sender, ToolTipEventArgs e)
{
}