Se podría hacer algo como esto:
ToolTip tooltip = new ToolTip();
Point? clickPosition = null;
void chart1_MouseMove(object sender, MouseEventArgs e)
{
if (clickPosition.HasValue && e.Location != clickPosition)
{
tooltip.RemoveAll();
clickPosition = null;
}
}
void chart1_MouseClick(object sender, MouseEventArgs e)
{
var pos = e.Location;
clickPosition = pos;
var results = chart1.HitTest(pos.X, pos.Y, false,
ChartElementType.PlottingArea);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.PlottingArea)
{
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
tooltip.Show("X=" + xVal + ", Y=" + yVal,
this.chart1, e.Location.X,e.Location.Y - 15);
}
}
}
Resultado:
EDIT:
para mostrar la información sobre herramientas cuando el movimiento del ratón, se puede utilizar el código siguiente:
Point? prevPosition = null;
ToolTip tooltip = new ToolTip();
void chart1_MouseMove(object sender, MouseEventArgs e)
{
var pos = e.Location;
if (prevPosition.HasValue && pos == prevPosition.Value)
return;
tooltip.RemoveAll();
prevPosition = pos;
var results = chart1.HitTest(pos.X, pos.Y, false,
ChartElementType.PlottingArea);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.PlottingArea)
{
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
tooltip.Show("X=" + xVal + ", Y=" + yVal, this.chart1,
pos.X, pos.Y - 15);
}
}
}
Tenga en cuenta que esto muestra la información sobre herramientas en cualquier posición del gráfico. Si desea mostrarlo solo cuando el mouse está cerca de un punto de serie, puede usar una funcionalidad de mschart, p. :
yourSeries.ToolTip = "X=#VALX, Y=#VALY";
(más ejemplos) here
gracias lot.When ejecutar el proyecto nada occures para mí. Los métodos mouse_Move y mouse_Click no se están ejecutando. ¿Debo agregar algo al gráfico? por ejemplo "chart1.Mouseclick .....". Tenga en cuenta que he hecho el gráfico de forma dinámica. –
Mi último problema está resuelto. Funcionó bien. Otra pregunta: ¿Qué sucede si quiero usar mouse_hover? ¿Se puede cambiar el código para que el usuario pueda ver los valores al pasar el mouse? –
@AsmaGood: verifique mi edición – digEmAll