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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM