首页 > 解决方案 > 如何检查光标位置是否在windows窗体中的图表控件之外?

问题描述

tooltipMS chart. 当从图表控件移动到其他控件或窗体可用空间时,tooltip不会被隐藏。

如何检查光标位置是否在windows窗体中的图表控件之外?

我尝试了下面的代码,它对我不起作用。

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    if (!chart.ClientRectangle.Contains(chart.PointToClient(new Point(e.X,e.Y))))
    {
        if (ToolTip != null)
            ToolTip.Hide(chart);
     }
 } 

我放了跟踪并检查了,如果我从图表控件移动以形成可用空间,则事件正在触发,只有当从图表移动到其他控件时,才Form1_MouseMove不会被调用。

如何解决我的问题?

标签: c#winformsmouseeventcursor-position

解决方案


尝试在您的目标控件上处理MouseEnterMouseLeave事件(您的案例中的图表,我的按钮)。

using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        private const string mouseIsOver = "Mouse is over";
        private const string mouseIsOutside = "Mouse is outside";

        public Form1()
        {
            InitializeComponent();
            var button = new Button { Text = mouseIsOutside, AutoSize = true, Location = new Point(10, 10) };
            button.MouseEnter += (sender, e) => button.Text = mouseIsOver;
            button.MouseLeave += (sender, e) => button.Text = mouseIsOutside;
            this.Controls.Add(button);

        }
    }
}

在此处输入图像描述


推荐阅读