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;
在对应窗体的构造函数中,初始化控件之后增加此行代码,来避免无边框模式下最大化窗口遮挡任务栏
------------------------------------------------------------------------------------------------------------------------------
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Darkic
转载请注明原文链接:https://www.cnblogs.com/darkic/p/16127575.html
来源:博客园cnblogs
© 版权声明:本文为博主原创文章,转载请附上博文链接!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南