gpt4 book ai didi

c# - 查找图表中点的值

转载 作者:太空狗 更新时间:2023-10-29 20:08:16 25 4
gpt4 key购买 nike

我在表格上做了一个图表。

我希望用户看到 value , x_valuey_value单击气球中的每个部分。

当用户移动鼠标时,气球应该消失。

我该怎么做?

最佳答案

你可以这样做:

    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);
}
}
}

结果:

enter image description here

编辑:

要在鼠标移动时显示工具提示,您可以使用以下代码:

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);
}
}
}

请注意,这会在图表的任何位置显示工具提示。如果您只想在鼠标靠近系列点时显示它,您可以使用 mschart 功能,例如:

yourSeries.ToolTip = "X=#VALX, Y=#VALY";

(更多示例 here)

关于c# - 查找图表中点的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9647666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com