狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

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

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

NotifyIcon類介紹

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

示例

通過設(shè)計頁面使用

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

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

這里的contextMenuStrip1也是由自己拖拽來的:

設(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;  // 顯示托盤圖標
     }
 }

雙擊notifyIcon1寫鼠標雙擊事件處理程序:

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

雙擊顯示窗體按鈕,寫點擊事件處理程序:

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

雙擊顯示氣泡按鈕,寫點擊事件處理程序:

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

雙擊退出按鈕,寫點擊事件處理程序:

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

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

winform實現(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;  // 顯示托盤圖標
            }
        }

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

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

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

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

通過代碼實現(xiàn)

首先全局聲明一個NotifyIcon對象與一個ContextMenuStrip對象:

 private NotifyIcon notifyIcon1;
 
private ContextMenuStrip menuStrip;

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

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

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

 
//  ToolStripMenuItem 對象添加到 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)托盤中顯示的圖標。
notifyIcon1.Icon = 
new Icon("你的ico圖標路徑"");

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

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

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

// 
注冊鼠標雙擊事件                           
notifyIcon1.MouseDoubleClick += NotifyIcon1_MouseDoubleClick;

notifyIcon1鼠標雙擊事件處理程序:

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

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

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

實現(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 對象。
            ToolStripMenuItem item1 = 
new ToolStripMenuItem("顯示窗體");
            item1.Click += (
object? sender, EventArgs e) => 
            {
                
this.Show();  // 顯示窗體
                
this.WindowState = FormWindowState.Normal;  // 恢復(fù)窗體正常大小
                
this.notifyIcon1.Visible = false;  // 隱藏托盤圖標
            };
            ToolStripMenuItem item2 = 
new ToolStripMenuItem("顯示氣泡");
            item2.Click += (
object? sender, EventArgs e) => 
            {
                
// 顯示氣泡提示,參數(shù)表示提示顯示的時間(單位:毫秒)
                notifyIcon1.ShowBalloonTip(
3000);
            };
            ToolStripMenuItem item3 = 
new ToolStripMenuItem("退出");
            item3.Click += (
object? sender, EventArgs e) => 
            {
                Application.Exit();  
// 退出應(yīng)用程序
            };

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

            

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

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

            
// Text 屬性設(shè)置當鼠標懸停在系統(tǒng)托盤圖標上時顯示的提示文本。
            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;  // 隱藏托盤圖標
        }

        
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;  // 顯示托盤圖標
            }
        }
    }
}


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