C# 程式關閉托盤表徵圖不會自動消失

來源:互聯網
上載者:User
調試winform程式的時候使用托盤表徵圖遇到關閉了程式但是托盤表徵圖並沒有消失的情況,但是滑鼠滑過表徵圖就消失了,這樣軟體開啟關閉次數多了會出現在托盤堆積大量表徵圖的情況,開始以為是作業系統重新整理問題,後來使用手動釋放表徵圖資源問題解決。 具體就是使用如下方法:
Dispose()

Releases all resources used by the Component.(繼承自 Component。)

在form的closing事件中直接調用 this.notifyIcon1.disponse() 也可以參考官方樣本
using System;using System.Drawing;using System.Windows.Forms;public class Form1 : System.Windows.Forms.Form{    private System.Windows.Forms.NotifyIcon notifyIcon1;    private System.Windows.Forms.ContextMenu contextMenu1;    private System.Windows.Forms.MenuItem menuItem1;    private System.ComponentModel.IContainer components;    [STAThread]    static void Main()     {        Application.Run(new Form1());    }    public Form1()    {        this.components = new System.ComponentModel.Container();        this.contextMenu1 = new System.Windows.Forms.ContextMenu();        this.menuItem1 = new System.Windows.Forms.MenuItem();        // Initialize contextMenu1        this.contextMenu1.MenuItems.AddRange(                    new System.Windows.Forms.MenuItem[] {this.menuItem1});        // Initialize menuItem1        this.menuItem1.Index = 0;        this.menuItem1.Text = "E&xit";        this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);        // Set up how the form should be displayed.        this.ClientSize = new System.Drawing.Size(292, 266);        this.Text = "Notify Icon Example";        // Create the NotifyIcon.        this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);        // The Icon property sets the icon that will appear        // in the systray for this application.        notifyIcon1.Icon = new Icon("appicon.ico");        // The ContextMenu property sets the menu that will        // appear when the systray icon is right clicked.        notifyIcon1.ContextMenu = this.contextMenu1;        // The Text property sets the text that will be displayed,        // in a tooltip, when the mouse hovers over the systray icon.        notifyIcon1.Text = "Form1 (NotifyIcon example)";        notifyIcon1.Visible = true;        // Handle the DoubleClick event to activate the form.        notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);    }    protected override void Dispose( bool disposing )    {        // Clean up any components being used.        if( disposing )            if (components != null)                components.Dispose();                    base.Dispose( disposing );    }    private void notifyIcon1_DoubleClick(object Sender, EventArgs e)     {        // Show the form when the user double clicks on the notify icon.        // Set the WindowState to normal if the form is minimized.        if (this.WindowState == FormWindowState.Minimized)            this.WindowState = FormWindowState.Normal;        // Activate the form.        this.Activate();    }    private void menuItem1_Click(object Sender, EventArgs e) {        // Close the form, which closes the application.        this.Close();    }}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.