Bạn có thể làm một cái gì đó như thế này:
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);
}
}
}
Kết quả:
EDIT:
để hiển thị tooltip khi di chuyển chuột, bạn có thể sử dụng mã sau:
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);
}
}
}
Lưu ý rằng điều này hiển thị chú giải công cụ trên bất kỳ vị trí nào của biểu đồ. Nếu bạn chỉ muốn hiển thị nó khi con chuột ở gần điểm chuỗi, bạn có thể sử dụng chức năng mschart, ví dụ: :
yourSeries.ToolTip = "X=#VALX, Y=#VALY";
(thêm ví dụ here)
Cảm ơn lot.When chạy dự án không có gì occures cho tôi. Các phương thức mouse_Move và mouse_Click không chạy. Tôi có nên thêm bất kỳ thứ gì vào biểu đồ không? cho excample "chart1.Mouseclick .....". Lưu ý rằng tôi đã thực hiện các biểu đồ dinamically. –
Vấn đề cuối cùng của tôi đã được giải quyết. Nó hoạt động tốt.hỏi khác: Nếu tôi muốn sử dụng mouse_hover. Bạn có thể thay đổi mã để người dùng có thể xem các giá trị bằng cách di chuột không? –
@AsmaGood: kiểm tra chỉnh sửa của tôi – digEmAll