欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【C#】winform實(shí)現(xiàn)最小化至系統(tǒng)托盤

admin
2024年3月8日 15:7 本文熱度 596

NotifyIcon類介紹

NotifyIcon 是 .NET中的一個(gè)類,它用于在系統(tǒng)托盤中顯示圖標(biāo)。這個(gè)類在 System.Windows.Forms 命名空間下。使用 NotifyIcon 類,你可以在系統(tǒng)托盤中創(chuàng)建一個(gè)圖標(biāo),當(dāng)用戶點(diǎn)擊或右鍵點(diǎn)擊這個(gè)圖標(biāo)時(shí),可以觸發(fā)一些事件。例如,你可以創(chuàng)建一個(gè)上下文菜單(右鍵菜單),或者當(dāng)用戶雙擊圖標(biāo)時(shí)打開一個(gè)窗口。

示例

通過(guò)設(shè)計(jì)頁(yè)面使用

在設(shè)計(jì)頁(yè)面中拖拽添加NotifyIcon:

進(jìn)行相關(guān)設(shè)置(在后面通過(guò)代碼使用時(shí)會(huì)進(jìn)行介紹):

這里的contextMenuStrip1也是由自己拖拽來(lái)的:

設(shè)置contextMenuStrip1:

重寫窗體關(guān)閉事件處理程序:

 protected override void OnFormClosing(FormClosingEventArgs e)
 {
     
if (e.CloseReason == CloseReason.UserClosing)
     {
         e.Cancel = 
true;  // 取消關(guān)閉窗體
         
this.Hide();  // 隱藏窗體
         
this.notifyIcon1.Visible = true;  // 顯示托盤圖標(biāo)
     }
 }

雙擊notifyIcon1寫鼠標(biāo)雙擊事件處理程序:

 private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     
this.Show();  // 顯示窗體
     
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
     
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
 }

雙擊顯示窗體按鈕,寫點(diǎn)擊事件處理程序:

 private void 顯示ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     
this.Show();  // 顯示窗體
     
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
     
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
 }

雙擊顯示氣泡按鈕,寫點(diǎn)擊事件處理程序:

 private void 顯示氣泡2ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     
// 顯示氣泡提示,參數(shù)表示提示顯示的時(shí)間(單位:毫秒)
     notifyIcon1.ShowBalloonTip(
3000);
 }

雙擊退出按鈕,寫點(diǎn)擊事件處理程序:

 private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Application.Exit();  
// 退出應(yīng)用程序
 }

查看實(shí)現(xiàn)效果:

winform實(shí)現(xiàn)最小至系統(tǒng)托盤效果

全部代碼:

namespace Minimized_to_the_system_tray_demo
{
    
public partial class Form1 : Form
    {
        
public Form1()
        {
            InitializeComponent();
        }
     
        
private void Form1_Load(object sender, EventArgs e)
        {

        }

        
protected override void OnFormClosing(FormClosingEventArgs e)
        {
            
if (e.CloseReason == CloseReason.UserClosing)
            {
                e.Cancel = 
true;  // 取消關(guān)閉窗體
                
this.Hide();  // 隱藏窗體
                
this.notifyIcon1.Visible = true;  // 顯示托盤圖標(biāo)
            }
        }

        
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            
this.Show();  // 顯示窗體
            
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
            
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
        }

        
private void 顯示ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
this.Show();  // 顯示窗體
            
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
            
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
        }

        
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();  
// 退出應(yīng)用程序
        }

        
private void 顯示氣泡2ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
// 顯示氣泡提示,參數(shù)表示提示顯示的時(shí)間(單位:毫秒)
            notifyIcon1.ShowBalloonTip(
3000);
        }
    }
}

通過(guò)代碼實(shí)現(xiàn)

首先全局聲明一個(gè)NotifyIcon對(duì)象與一個(gè)ContextMenuStrip對(duì)象:

 private NotifyIcon notifyIcon1;
 
private ContextMenuStrip menuStrip;

menuStrip的相關(guān)設(shè)置:

 // 創(chuàng)建 ContextMenuStrip
 
this.menuStrip = new ContextMenuStrip();

 
// 創(chuàng)建并初始化 ToolStripMenuItem 對(duì)象。
 ToolStripMenuItem item1 = 
new ToolStripMenuItem("顯示窗體");
 item1.Click += (
object? sender, EventArgs e) => 
 {
     
this.Show();  // 顯示窗體
     
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
     
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
 };
 ToolStripMenuItem item2 = 
new ToolStripMenuItem("顯示氣泡");
 item2.Click += (
object? sender, EventArgs e) => 
 {
     
// 顯示氣泡提示,參數(shù)表示提示顯示的時(shí)間(單位:毫秒)
     notifyIcon1.ShowBalloonTip(
3000);
 };
 ToolStripMenuItem item3 = 
new ToolStripMenuItem("退出");
 item3.Click += (
object? sender, EventArgs e) => 
 {
     Application.Exit();  
// 退出應(yīng)用程序
 };

 
//  ToolStripMenuItem 對(duì)象添加到 ContextMenuStrip Items 集合中。
 
this.menuStrip.Items.Add(item1);
 
this.menuStrip.Items.Add(item2);
 
this.menuStrip.Items.Add(item3);

notifyIcon1的相關(guān)設(shè)置:

 // 創(chuàng)建 NotifyIcon
 
this.notifyIcon1 = new NotifyIcon();

// Icon 屬性設(shè)置將在系統(tǒng)托盤中顯示的圖標(biāo)。
notifyIcon1.Icon = 
new Icon("你的ico圖標(biāo)路徑"");

// ContextMenu
屬性設(shè)置當(dāng)右鍵點(diǎn)擊系統(tǒng)托盤圖標(biāo)時(shí)顯示的菜單。
notifyIcon1.ContextMenuStrip = this.menuStrip;

// Text
屬性設(shè)置當(dāng)鼠標(biāo)懸停在系統(tǒng)托盤圖標(biāo)上時(shí)顯示的提示文本。
notifyIcon1.Text = "
最小化至系統(tǒng)托盤示例程序";
notifyIcon1.Visible = true;

// 
氣泡提示相關(guān)設(shè)置
notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
notifyIcon1.BalloonTipTitle = "
提示";
notifyIcon1.BalloonTipText = "
您有一條新消息";

// 
注冊(cè)鼠標(biāo)雙擊事件                           
notifyIcon1.MouseDoubleClick += NotifyIcon1_MouseDoubleClick;

notifyIcon1鼠標(biāo)雙擊事件處理程序:

 private void NotifyIcon1_MouseDoubleClick(object? sender, MouseEventArgs e)
 {
     
this.Show();  // 顯示窗體
     
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
     
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
 }

重寫窗體關(guān)閉事件處理程序:

protected override void OnFormClosing(FormClosingEventArgs e)
{
    if (e.CloseReason == CloseReason.UserClosing)
    {
        e.Cancel = 
true;  // 取消關(guān)閉窗體
        
this.Hide();  // 隱藏窗體
        
this.notifyIcon1.Visible = true;  // 顯示托盤圖標(biāo)
    }
}

實(shí)現(xiàn)效果與上述相同。

全部代碼:

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 Minimized_to_the_system_tray_demo
{
    
public partial class Form2 : Form
    {
        
private NotifyIcon notifyIcon1;
        
private ContextMenuStrip menuStrip;
        
public Form2()
        {
            InitializeComponent();

            
// 創(chuàng)建 NotifyIcon
            
this.notifyIcon1 = new NotifyIcon();

            
// 創(chuàng)建 ContextMenuStrip
            
this.menuStrip = new ContextMenuStrip();

            
// 創(chuàng)建并初始化 ToolStripMenuItem 對(duì)象。
            ToolStripMenuItem item1 = 
new ToolStripMenuItem("顯示窗體");
            item1.Click += (
object? sender, EventArgs e) => 
            {
                
this.Show();  // 顯示窗體
                
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
                
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
            };
            ToolStripMenuItem item2 = 
new ToolStripMenuItem("顯示氣泡");
            item2.Click += (
object? sender, EventArgs e) => 
            {
                
// 顯示氣泡提示,參數(shù)表示提示顯示的時(shí)間(單位:毫秒)
                notifyIcon1.ShowBalloonTip(
3000);
            };
            ToolStripMenuItem item3 = 
new ToolStripMenuItem("退出");
            item3.Click += (
object? sender, EventArgs e) => 
            {
                Application.Exit();  
// 退出應(yīng)用程序
            };

            
//  ToolStripMenuItem 對(duì)象添加到 ContextMenuStrip Items 集合中。
            
this.menuStrip.Items.Add(item1);
            
this.menuStrip.Items.Add(item2);
            
this.menuStrip.Items.Add(item3);

            

            
// Icon 屬性設(shè)置將在系統(tǒng)托盤中顯示的圖標(biāo)。
            notifyIcon1.Icon = 
new Icon("你的ico圖標(biāo)路徑");

            
// ContextMenu 屬性設(shè)置當(dāng)右鍵點(diǎn)擊系統(tǒng)托盤圖標(biāo)時(shí)顯示的菜單。
            notifyIcon1.ContextMenuStrip = 
this.menuStrip;

            
// Text 屬性設(shè)置當(dāng)鼠標(biāo)懸停在系統(tǒng)托盤圖標(biāo)上時(shí)顯示的提示文本。
            notifyIcon1.Text = 
"最小化至系統(tǒng)托盤示例程序";
            notifyIcon1.Visible = 
true;

            notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
            notifyIcon1.BalloonTipTitle = 
"提示";
            notifyIcon1.BalloonTipText = 
"您有一條新消息";

            notifyIcon1.MouseDoubleClick += NotifyIcon1_MouseDoubleClick;

        }

        
private void NotifyIcon1_MouseDoubleClick(object? sender, MouseEventArgs e)
        {
            
this.Show();  // 顯示窗體
            
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
            
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標(biāo)
        }

        
private void Form2_Load(object sender, EventArgs e)
        {

        }

        
protected override void OnFormClosing(FormClosingEventArgs e)
        {
            
if (e.CloseReason == CloseReason.UserClosing)
            {
                e.Cancel = 
true;  // 取消關(guān)閉窗體
                
this.Hide();  // 隱藏窗體
                
this.notifyIcon1.Visible = true;  // 顯示托盤圖標(biāo)
            }
        }
    }
}


該文章在 2024/3/8 15:17:09 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved