可以';在“MouseHover”事件中无法获取“MouseEventArgs”
本文关键字:MouseEventArgs 获取 事件 MouseHover 可以 | 更新日期: 2023-09-27 18:21:17
我确信这有一个直截了当的答案,但我似乎无法弄清楚。
我正在尝试使用mousehover
事件添加tooltip
。从历史上看,我使用过mousemove
事件,但不幸的是,这意味着tooltip
会以程序所能做到的最快速度更新。我只想让它在鼠标静止在图形上时显示出来。
问题是我无法获取e.Location
属性,因为事件处理程序只使用EventArgs
,而不使用MouseEventArgs
。有什么办法可以改变吗?或者添加一行MouseEventArgs mouse = new MouseEventArgs();
(我收到一个错误,说它需要更多的参数,但我不知道是哪个)。
感谢您的帮助:)
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);
}
}
将Cursor.Position属性映射到图表。面板示例:
private void panel1_MouseHover(object sender, EventArgs e) {
var pos = panel1.PointToClient(Cursor.Position);
toolTip1.Show("Hello", panel1, pos);
}
请注意,这与使用toolTip1.Show("你好",panel1)没有什么不同;但您可能希望调整工具提示的位置,使其不会与光标重叠。