首先设置程序最小化到任务栏右下角

先给窗口添加一个notifyIcon控件

为notifyIcon控件设置ICO图标(不设置图标将无法在任务栏显示)

给notifyIcon控件添加点击事件

然后是最小化到任务栏右下角

                if (this.WindowState == FormWindowState.Normal && this.Visible == true)
{
this.notifyIcon1.Visible = true;//在通知区显示Form的Icon
this.WindowState = FormWindowState.Minimized;
this.Visible = false;
this.ShowInTaskbar = false;//使Form不在任务栏上显示
this.Hide();
}

接下来判断点击的是鼠标的哪个按键

        /// <summary>
/// 添加双击托盘图标事件(双击显示窗口)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)//判断鼠标的按键
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Minimized;
this.Hide();
}
else if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}
}
else if (e.Button == MouseButtons.Right)
{
if (MessageBox.Show("是否需要关闭程序?", "提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)//出错提示
{
//鼠标查询进程
_MouseStop = false;
if (Mouse_Thread != null)
{
Mouse_Thread.Abort();
Mouse_Thread = null;
}
//关闭窗口
DialogResult = DialogResult.No;
Dispose();
Close();
}
}
}

如果点击的是左键,就判断窗口是不是最小化的,是就还原窗口。不是就隐藏窗口

            if (e.Button == MouseButtons.Left)//判断鼠标的按键
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Minimized;
this.Hide();
}
else if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}
}

如果点击的是右键,则弹出提示框,提示用户

            else if (e.Button == MouseButtons.Right)
{
if (MessageBox.Show("是否需要关闭程序?", "提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)//出错提示
{
//鼠标查询进程
_MouseStop = false;
if (Mouse_Thread != null)
{
Mouse_Thread.Abort();
Mouse_Thread = null;
}
//关闭窗口
DialogResult = DialogResult.No;
Dispose();
Close();
}
}

作者:逐梦
出处:http://www.cnblogs.com/huanjun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

C# 设置程序最小化到任务栏右下角,鼠标左键单击还原,右键提示关闭程序的更多相关文章

  1. delphi如何让程序最小化到任务栏(转)

    现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标.象FoxMail 3.0 NetVampire 3.0等都提供了这样的功 ...

  2. Delphi如何让程序最小化到任务栏(截取WM_SYSCOMMAND后,调用Shell_NotifyIcon)

    现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标.象FoxMail 3.0 NetVampire 3.0等都提供了这样的功 ...

  3. delphi如何让程序最小化到任务栏(使用Shell_NotifyIcon API函数)

    现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标.象FoxMail 3.0 NetVampire 3.0等都提供了这样的功 ...

  4. WPF程序最小化到任务通知栏

    我们通常使用的桌面软件,都可以最小化到任务通知栏,并且可以从任务通知栏再打开当前软件,或者通过软件的快捷方式从任务通知栏呼出. 我们可以通过下面的方式把WPF程序最小化到任务栏.由于WPF并没有实现N ...

  5. C# 程序启动最小化至任务栏及闪烁

    主要功能: C#让窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,并使窗体闪烁. 首先: 创建窗体应用程序,并添加控件NotifyIcon及ContextMenuStrip控件 Noti ...

  6. VC++ 实现VC程序启动时最小化到任务栏(完美解决闪烁问题)

    之前写的一个VC应用程序,是程序启动时就直接出现在任务栏, 窗体不出现,等用户点击任务栏图标再出现窗口.和一些防火墙什么的软件类似. 这种效果实现并不是很困难的,硬是找不到最好的.为什么呢? 首先,在 ...

  7. C# winForm启动最小化到任务栏右侧通知栏并交互操作

    原文链接:http://blog.sina.com.cn/s/blog_45eaa01a01013u36.html C# winForm启动最小化到任务栏右侧通知栏并交互操作 一.主要功能:(1).程 ...

  8. C# winForm 开机自动启动 并启动后最小化到任务栏 右侧通知栏并交互操作

    //设置自动启动 string path = Application.StartupPath; SettingHel.SetAutoRun(path +@"\MostImpressive.D ...

  9. Winform 基础二 最小化 最大化 关闭 点击任务栏隐藏显示 点击鼠标左键移动窗体

    一 最大化 二 最小化 三 关闭 四 点击任务栏隐藏显示 五 点击鼠标左键移动窗体 六 阴影效果鼠标左键移动窗口 #region UI设置 最大化.最小化.关闭.鼠标移动窗口.点击任务栏切换窗口 th ...

随机推荐

  1. tcp/ip 调优示例

    # Kernel sysctl configuration file for Linux # # Version 1.12 - 2015-09-30 # Michiel Klaver - IT Pro ...

  2. VBA注意事项

    以下是项目过程中遇到的坑,可能有些说明的部分不一定严谨,仅供参考 1.最好保存成 [*.xlsm]文件 2.注意 VBA 的参数类型,使用的参数如果未声明直接使用的话会出现类型不匹配的错误 3.代码写 ...

  3. Extjs 自动列宽

    //auto column width Ext.grid.Panel.prototype.viewConfig = { listeners: { refresh: function (dataview ...

  4. mysql 统计连续天数

    以下为例子数据 图1 图1 首先根据要求取出BeforeMeal要在7.0以下 并且 bingAfterMeal要在11.1以下 select AccountId,CreateTime from Di ...

  5. Windows快捷操作技巧

    隐藏技能 在当前路径打开命令行 shift + 右键点击文件夹内的空白处,你会看到右键弹出菜单多了个选项 "在此处打开命令窗口",省去了打开命令行再cd到当前路径的麻烦. 快捷键 ...

  6. poj 2356 抽屉原理

    基本原理: n+1个鸽子放到n个笼子里,至少有一个笼子里有两只及其以上的鸽子.若有n个笼子,kn+1个鸽子,至少有一个笼子里面有k+1个鸽子: 题意:给定N个数,挑出一些数,他们和和是n的整数倍: 分 ...

  7. javascript运算符——条件、逗号、赋值、()和void运算符 (转载)

    原文出自 作者:小火柴的蓝色理想   javascript中运算符总共有46个,除了前面已经介绍过的算术运算符.关系运算符.位运算符.逻辑运算符之外,还有很多运算符.本文将介绍条件运算符.逗号运算符. ...

  8. 【luoguP1996】【luogu-original】约瑟夫问题

    先来看题目: P1996 约瑟夫问题 题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人 ...

  9. JS获取浏览器高度和宽度

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...

  10. .NET 小程序 wx.getUserInfo(OBJECT) 解密 encryptedData 来获取UnionId

    在小程序中通过 wx.getUserInfo 获取用户信息,而UnionId 只有关主了公众号才会返回,不关注公众号想获取UnionId则需要我们从返回的 encryptedData 中解码从而获取U ...