c# – 无法在`MouseHover`事件中获取`MouseEventArgs`
发布时间:2020-12-16 01:55:51 所属栏目:百科 来源:网络整理
导读:我确信这有一个直接的答案,但我似乎无法弄明白. 我正在尝试使用mousehover事件添加工具提示.从历史上看,我已经使用了mousemove事件,但不幸的是,这意味着工具提示会像程序一样快速地更新.我只想让它显示鼠标在我的图表上静止不动. 问题是我无法获取e.Location
我确信这有一个直接的答案,但我似乎无法弄明白.
我正在尝试使用mousehover事件添加工具提示.从历史上看,我已经使用了mousemove事件,但不幸的是,这意味着工具提示会像程序一样快速地更新.我只想让它显示鼠标在我的图表上静止不动. 问题是我无法获取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(“Hello”,panel1)没有区别;但是您可能想要调整工具提示位置,以便它不会被光标重叠. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |