C#WinForms MouseHover和MouseLeave问题

k78*_*787 1 c# button visible mousehover

出于某种原因,MouseHover和MouseLeave函数表现得非常奇怪.我需要做的就是,当光标在"按钮"上方时,我想让按钮可见,当光标离开按钮时,我想让它不可见.无论我尝试什么,我都无法使它发挥作用.当控件对象不可见时,似乎鼠标事件不起作用.

private void button1_MouseHover(object sender, EventArgs e)
{
   button1.Visible = true;
}

private void button1_MouseLeave(object sender, EventArgs e)
{
    button1.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 8

嗯......这就是它的工作原理.继续处理按钮的MouseLeave事件并处理MouseMove其父项(我假设表单):

private void Form_MouseMove(object sender, MouseEventArgs e) {
    if (button1.Bounds.Contains(e.Location) && !button1.Visible) {
        button1.Show();
    }
}
Run Code Online (Sandbox Code Playgroud)