鼠标焦点在面板范围内时添加事件

我有:

>文本框(多行)
>面板
>面板内的不同控件(按钮,文本框)

场景:

当鼠标在面板范围内或面板区域内时,我需要在文本框中添加文本,当不在面板上聚焦时,需要再次清除文本框.
我将MouseHover和MouseLeave事件用于此效果.问题是当我将焦点放在面板上的任何控件上时,鼠标似乎失去了面板上的焦点并调用MouseLeave事件.

当鼠标在面板范围内时,是否可以添加事件?

解决方法:

您可以使用面板的MouseLeave并检查您的鼠标位置是否确实不在面板表面.

 private void panel_MouseLeave( object sender, EventArgs e ) {
      Point mouseposition = this.PointToClient( MousePosition ); // to calculate the mouseposition related to the form (keyword this)

      //If the mouse isn't into the panel surface...
      if (!(mouseposition.X > panel1.Location.X && mouseposition.Y > panel1.Location.Y && mouseposition.X <  panel.Location.X + panel1.ClientSize.Width  && mouseposition.Y <  panel1.Location.Y + panel.ClientSize.Height) )
          textbox.Clear();
 }
上一篇:C#面板不可见


下一篇:宝塔