C# WinForm 实现QQ在屏幕边缘自动隐藏鼠标移上去又自动显示

在Windows Forms应用程序中,我们可以通过一些技巧来实现QQ那样的鼠标移动至屏幕边缘自动隐藏的功能。以下是一个简化的步骤和代码示例: 1. **窗口状态检测**: 首先,我们需要判断当前窗口是否处于最大化或最小化状态。如果处于这些状态,则不需要进行任何操作。 2. **边缘检测**: 接下来,我们需要检测鼠标移动的位置是否接近屏幕的边缘。这可以通过获取鼠标的坐标和屏幕分辨率来实现。 3. **隐藏与显示**: 当鼠标移动到边缘时,我们可以使用C#中的`Show()`和`Hide()`方法来控制窗口的可见性。具体来说,当鼠标移出屏幕边缘时,调用`Hide()`方法隐藏窗口;反之,当鼠标移入屏幕边缘时,调用`Show()`方法显示窗口。 以下是实现这一功能的示例代码: ```csharp using System; using System.Windows.Forms; namespace MouseAutoHideApp { public partial class Form1 : Form { private bool _isMaximized = false; private bool _isMinimized = false; private int _screenWidth, _screenHeight; public Form1() { InitializeComponent(); _screenWidth = Screen.PrimaryScreen.WorkingArea.Width; _screenHeight = Screen.PrimaryScreen.WorkingArea.Height; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.MouseMove += Form1_MouseMove; } private void Form1_MouseMove(object sender, MouseEventArgs e) { if (_isMaximized || _isMinimized) return; int mouseX = e.X; int mouseY = e.Y; // 检测是否接近屏幕边缘 bool isNearEdge = (mouseX < _screenWidth / 5 && mouseY > _screenHeight - _screenHeight / 5) || (mouseX >= _screenWidth * 4 / 5 && mouseY <= _screenHeight / 5); // 如果接近边缘,隐藏窗口;否则显示窗口 if (isNearEdge) this.Hide(); else if (!this.Visible) this.Show(); } } }
zip 文件大小:405.29KB