C#winform任务栏显示小图标及右击操作

一般的开发的应用运行时,是直接的程序页面打开,想要达到微信那样的效果,还是有些东西要注意的,最近看了一些零零散散的解决方法,我就整合了一下。

 鼠标单击打开微信界面,右击微信图标会有如下图的快捷功能操作

 ********************************************

1.让右下角状态栏上显示我们的程序的小图标

①在工具箱里面找到这个控件NotifyIcon,拖进应用程序

 ②设置我们需要的属性,要在右下角状态栏显示的图标

 ③现在可以点击运行了,可以看到右下角有你刚刚添加进程序的icon图标,这个只是到了可以看的阶段还有....我们需要能点击图标打开还有右击快捷操作。

给刚刚拖进来的NotifyIcon控件添加一个MouseDoubleClick事件让它在最小化的时候能点击小图标后显示程序

 代码如下:

/// <summary>
/// 状态栏小图标的鼠标点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void nIcon_Click(object sender, MouseEventArgs e)
{
    try
    {
        if (this.WindowState == FormWindowState.Minimized)//当程序是最小化的状态时显示程序页面
        {
            this.WindowState = FormWindowState.Normal;
        }
        this.Activate();
        this.Visible = true;
        this.ShowInTaskbar = true;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

 

 ④开始添加右下角状态栏小图标的右击操作了

找到ContextMenuStrip控件,拖进应用程序

 

设置它的一些属性,双击打开集合,添加右击菜单的两个子项,并设置子项的Name和Text的,按照你的实际需求来。编写右击菜单子项的事件,我就写了一个退出事件

/// <summary>
/// 右击状态栏小图标的退出事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void smi_exit_Click(object sender, EventArgs e)
{
    DialogResult result = MessageBox.Show("你确定要关闭吗!", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
    if (result == DialogResult.OK)
    {
        // 关闭所有的线程
        this.Dispose();
        this.Close();
    }
}

 

 

 接着就是把这个ContextMenuStrip控件绑定到右下角的我的程序小图标(NotifyIcon控件)上面,绑定完就可以使用啦。 

⑤目前点击程序的右上角的关闭时,就是直接退出程序了,把它变成点击右上角的叉叉缩进右下角的状态栏,不直接退出,再次点击右下角状态栏的小图标的时候,就打开程序。

找到窗体的这个属性添加事件并写入代码

 代码如下:

/// <summary>
/// 程序右上角叉叉关闭时的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    try
    {
        e.Cancel = true;
        this.Visible = false;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

 

********************************************************

扩展:C#监听键盘的按下操作  -----要设置窗体的KeyPreview属性,并且添加KeyDown事件

/// <summary>
/// 键盘按Esc,隐藏程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>         
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
         
    if (e.KeyValue == 27)
    {   //窗体隐藏
        this.Hide();
    }

}

 

 博终,okk。

 2019-12-06

posted @ 2019-12-06 16:01  山菜的日记本  阅读(5076)  评论(0编辑  收藏  举报