鼠标事件隐藏和显示按钮制造商按钮没有响应

时间:2014-04-30 06:17:10

标签: c# winforms

private void panelControl1_MouseEnter(object sender, EventArgs e)
{
      button2.Show();
}

private void panelControl1_MouseLeave(object sender, EventArgs e)
{
      button2.Hide();
}

enter image description here

当我进入面板时,按钮显示但单击按钮不起作用。以上是图片和代码。

2 个答案:

答案 0 :(得分:0)

当鼠标进入控件的“可见”部分时发生MouseEnter,当鼠标离开控件的“可见”部分时发生MouseLeave。在按钮上面不是panelControl的可见部分。

答案 1 :(得分:0)

此问题有解决方法。您可以创建自己的CustomPanel课程。 添加此课程后,您可以将{strong> Designer.cs 中的Panel替换为CustomPanel

namespace System.Windows.Forms
{
    public class CustomPanel : Panel
    {
        protected override void OnMouseLeave(EventArgs e)
        {
            if (this.ClientRectangle.Contains(this.PointToClient(Control.MousePosition)))
                return;
            else
            {
                base.OnMouseLeave(e);
            }
        }
   }
}
每当用户悬停任何面板子控件时,

CustomPanel类限制MouseLeave事件的无效触发。