技术 思绪 摘录 旅行
本文只做个备忘,记录一下,winform程序如何配置程序的右下角任务栏图标,以及右键菜单和还原主窗体的操作。

首先我们新建一个Winform程序


image.png


image.png

这时候程序是可以运行的,但是点击关闭的时候,也就真的关闭了

我们希望在点击关闭之后,能缩小到任务栏小图标,继续运行。

再从任务栏小图标右键退出,才正式关闭程序。


接下来在工具栏中,我们搜【NotifyIcon】控件,拖到界面上,name命名为nfi_right

image.png


这个只是任务栏图标,还没有右键菜单

我们再搜【ContextMenuStrip】控件,拖到界面上,name命名为cms_right


image.png


现在控件栏有两个我们刚刚拖过来的控件了。


首先设置nfi_right控件的ContextMenuStrip属性,选择cms_right控件,意思是把cms_right这个菜单绑定到nfi_right这个控件的右键操作上。

再给它Icon属性设置一个图标,就是我们想要看到的图标


image.png



再设置cms_right控件的内容


image.png


首先我们需要双击增加三个事件,分别如下:

cms_right的显示主界面事件

cms_right的退出事件

form1窗体的FormClosing事件(正在关闭事件)


image.png


填充如下代码


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// The is close
        /// </summary>
        private bool _isClose;

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (_isClose)
            {
                Application.Exit();//彻底关闭进程
            }
            else
            {
                e.Cancel = true;//取消关闭事件
                this.WindowState = FormWindowState.Minimized;//窗体最小化
                this.ShowInTaskbar = false;//不显示任务栏上的图标
            }
        }

        private void 显示主界面ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Normal;//窗体还原
            this.ShowInTaskbar = true;//显示任务栏图标
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            _isClose = true;//可以彻底结束
            this.Close();//执行关闭事件 会触发 Form1_FormClosing()
        }
    }
}


以上代码已经完成这个功能。


CarsonIT 微信扫码关注公众号 策略、创意、技术

留下您的脚步

 

最近评论

查看更多>>

精选推荐

阅读排行

友情打赏

请打开您的微信,扫一扫