日期:2014-05-17  浏览次数:21729 次

C# 判断鼠标是否在控件内
我是想在鼠标移过控件时,用ToolTip显示控件内容。用了MouseMove事件

editor.MouseMove += new MouseEventHandler(showTip);



private void showTip(object sener, MouseEventArgs e)

if (e.X > control.Location.X && e.X < control.Location.X + control.Width && e.Y > control.Location.Y && e.Y < control.Location.Y + control.Height)
toolTip1.Show("AAAAAAAAAAAAAAAAAA",control);



这样显示的不对呀
请高手指教

------解决方案--------------------
if (button1.Bounds.Contains(e.X,e.Y))
------解决方案--------------------
引用:
鼠标移过控件的事件是MouseEnter,直接调用你想移过的控件的MouseEnter事件即可实现,无需判断所在位置。


+1
------解决方案--------------------
引用:
if (button1.Bounds.Contains(e.X,e.Y))

能具体说下怎么用吗?我判断鼠标是否在按钮内
if(button1.Bounds.Contains(e.x,e.y))
{
   this.button1.BackColor=Color.Red;
}
else
{
  this.button1.BackColor=Color.yellow;
}
执行的效果不对啊,好像是if下面的代码不执行,什么原因啊??
------解决方案--------------------
引用:
我没说完整。
在代码里 动态添加的好多控件,所以我需要判断鼠标停在哪个控件上,停在哪个控件上,就显示哪个控件的内容

动态添加的控件,让这些控件都注册MouseEnter事件,在事件函数中显示控件信息,如:
    private void ctl_MouseEnter(object sender, EventArgs e)
        {
            label1.Text=((Control)sender).Text;
        } 
------解决方案--------------------
一种办法:你在每一个动态添加的控件上都添加一个ToolTip.鼠标放上去就自动的给出提示了。这种方法是在生成控件时就定以后的。提示的信息也是固定的。
第二种办法:是在每个动态加载的控件上都添加MouseHover或是其他的鼠标事件上动态的添加一个Tooltip这样能动态的添加提示信息。
还有一种最笨的办法是:获得鼠标在桌面上的坐标coordenate,然后换算到当前控件的父控件上的坐标。然后比较当前的鼠标坐标和当前控件的Location.判断当前的鼠标是否在该控件上。然后动态的画一个Lable或是Richtextbox框,显示动态的信息。然后动态的清除你添加的控件。动态清除的方法可以自己做一个定时器,显示定时的时间。或是在Lable框或是RichTextBox框中MouseLeave事件中添加自销毁的代码。
------解决方案--------------------
你的思路拧了

楼上的童鞋说得好啊,应该在动态添加控件时直接添加 tooltip


private void text_ShowTooltips()
{
    Panel panel = new Panel()
    {
        Location = new Point(0, 0),
        Size = this.ClientSize
    };

    this.Controls.Add(panel);

    panel.Controls.AddRange(new Control[] {
        new Button() { Location=new Point(100,100), Text="Button1", AccessibleDescription="This is Button1" },
        new Button() { Location=new Point(100,150), Text="Button2", AccessibleDescription="This is Button2" },
        new Button() { Location=new Point(100,200), Text="Button3", AccessibleDescription="This is Button3" },