前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用c#制作托盘程序,并禁止多个应用实例运行

利用c#制作托盘程序,并禁止多个应用实例运行

作者头像
菩提树下的杨过
发布2018-01-22 17:08:58
1.2K0
发布2018-01-22 17:08:58
举报

托盘程序的制作:

1.把NotifyIcon控件拉一个到窗体上,并设置NotifyIcon的Icon(很重要!否则运行后看不到效果) 2.窗体关闭时,将程序最小化到系统托盘上

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

    //MessageBox.Show("程序将最小化到系统托盘区");

    e.Cancel = true; // 取消关闭窗体 

    this.Hide();

    this.ShowInTaskbar = false;//取消窗体在任务栏的显示 

    this.notifyIcon1.Visible = true;//显示托盘图标 



}

3.放一个上下文菜单,添加几个基本项,"显示主窗体","退出" ,将这个菜单挂到NotifyIcon上

private void menuShow_Click(object sender, EventArgs e)

{

    this.Show();

    this.ShowInTaskbar = true;

    this.notifyIcon1.Visible = false;

}


private void menuExit_Click(object sender, EventArgs e)

{

    this.Dispose(true);

    Application.ExitThread();

}

4.左键单击托盘图标时,显示主窗体,右击时当然是弹出上面设置的菜单

private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)

{

    if (e.Button == MouseButtons.Left)

    {

        this.Show();

        this.ShowInTaskbar = true;

        this.notifyIcon1.Visible = false;

    }

}

防止这个程序同时运行多个

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Threading;



namespace LuceneTest

{

    static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {

            bool bCreatedNew;

            Mutex m = new Mutex(false, "Product_Index_Cntvs", out bCreatedNew);

            if (bCreatedNew)

            {

                Application.EnableVisualStyles();

                Application.SetCompatibleTextRenderingDefault(false);

                Application.Run(new Form1());

            }

        }

    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2007-12-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档