Zrobiłem wykres na moim formularzu.ustalanie wartości punktów na wykresie
Chcę, aby użytkownik zobaczył value
, x_value
i każdej części balonu, klikając tę część.
Ballon shoud zniknie, gdy użytkownik poruszy myszą.
Jak mogę to zrobić?
Zrobiłem wykres na moim formularzu.ustalanie wartości punktów na wykresie
Chcę, aby użytkownik zobaczył value
, x_value
i każdej części balonu, klikając tę część.
Ballon shoud zniknie, gdy użytkownik poruszy myszą.
Jak mogę to zrobić?
Można zrobić coś takiego:
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);
}
}
}
Wynik:
EDIT:
pokazać etykietkę, gdy ruch myszy, można użyć następujący kod:
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);
}
}
}
Należy zauważyć, że pokazuje to etykietkę narzędzia w dowolnym położeniu na wykresie. Jeśli chcesz wyświetlić go tylko wtedy, gdy mysz znajduje się w pobliżu punktu serii, możesz użyć funkcji mschart np. :
yourSeries.ToolTip = "X=#VALX, Y=#VALY";
(dalsze przykłady here)
dziękuję lot.When uruchamiając projekt occures nic dla mnie. Metody mouse_Move i mouse_Click nie działają. Czy mogę dodać coś do wykresu? na przykład "chart1.Mouseclick .....". Zauważ, że zrobiłem tabelę dinamicznie. –
Mój ostatni problem został rozwiązany. To działało dobrze. Inne pytanie: Co zrobić, jeśli chcę użyć mouse_hover.Can zmienić kod tak, aby użytkownik mógł zobaczyć wartości przez najechanie myszą? –
@AmamaGood: sprawdź moją edycję – digEmAll