I'm sure this has a straight forward answer but I can't seem to figure it out.
I am trying to add a tooltip
using my mousehover
event. Historically I have used the mousemove
event but unfortunately this means the tooltip
gets updated as fast as the program can do it. I just want it to show when the mouse is stationary on my graph.
The issue is that I can't get the e.Location
property because the event handler only uses EventArgs
, not MouseEventArgs
. Is there a way I can change this? Or maybe add a line like MouseEventArgs mouse = new MouseEventArgs();
(I get an error saying it needs more arguments, but I don't know which).
Any help is appreciated :)
private void chSysData_MouseHover(object sender, EventArgs e)
{
//Add tooltip
try
{
int cursorX = Convert.ToInt32(chSysData.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X));
tipInfo = "System: " + systemVoltage[cursorX].ToString("0.00") + Environment.NewLine + "Current: " + currArray[cursorX].ToString("0.00") + Environment.NewLine;
tooltip.SetToolTip(chSysData, tipInfo);
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
Map the Cursor.Position property to your chart. An example with a panel:
private void panel1_MouseHover(object sender, EventArgs e) {
var pos = panel1.PointToClient(Cursor.Position);
toolTip1.Show("Hello", panel1, pos);
}
Note that this is not otherwise different from using toolTip1.Show("Hello", panel1); but you are likely to want to tweak the tooltip position so it isn't overlapped by the cursor.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With