C# 无边框模式拖动 最大化 最小化 关闭 最大化不遮挡任务栏

一、无边框模式拖动

private Point mPoint;
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
mPoint = new Point(e.X, e.Y);
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
}
}

在需要进行鼠标按下拖动的控件或窗体上增加对应的MouseDown.MouseMove事件处理即可
本代码示例以panel1为无边框窗体顶部标题栏,因此对应事件均为panel1的事件

二、无边框模式最大化 最小化 关闭处理

//处理关闭按钮事件
private void btn_close_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
//处理最小化按钮事件
private void btn_min_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
//处理最大化按钮事件
//同步变更最大化按钮图片
private void btn_max_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Maximized;
btn_max.Image = global::GoBang.Properties.Resources.normal;
}
else if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
btn_max.Image = global::GoBang.Properties.Resources.max;
}
}

三、无边框模式最大化不遮挡任务栏

this.MaximizedBounds = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

在对应窗体的构造函数中,初始化控件之后增加此行代码,来避免无边框模式下最大化窗口遮挡任务栏

posted @   Darkic  阅读(529)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示

目录导航