c# 窗体最小化到托盘
c# winform最小化到托盘,也就是最小化到右下角,其实很简单,winform中有专门的控件。
下面是完整的代码,没太多需要解释的。
先在winform中添加notifyIcon控件,然后激活相应事件,添加代码。因为屏蔽了关闭窗体事件,可以设定一个全局变量bool变量来分辨是哪里引起的close事件。
注意添加Form的SizeChanged事件和NotifyIcon控件的DoubleClick事件
- //全家变量bool closeTag = true;
- //最小化
- private void form1_Resize(object sender, EventArgs e)
- {
- if (this.WindowState == FormWindowState.Minimized)
- {
- NormalToMinimized();
- }
- }
- //close时最小化
- private void form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- e.Cancel = true;
- NormalToMinimized();
- }
- //单击显示窗体
- private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- this.MinimizedToNormal();
- }
- }
- private void MinimizedToNormal()
- {
- this.Visible = true;
- this.WindowState = FormWindowState.Normal;
- notifyIcon.Visible = false;
- }
- private void NormalToMinimized()
- {
- this.WindowState = FormWindowState.Minimized;
- this.Visible = false;
- this.notifyIcon.Visible = true;
- }
- private void frmMain_FormClosing(object sender, FormClosingEventHandler e)
- {
- if (closeTag)
- {
- e.Cancel = true;
- NormalToMinimized();
- }
- }
- //托盘右键关闭事件
- private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
- {
- closeTag = false;
- Application.Exit();
- }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构