İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# NotifyIcon Kullanımı ve C# NotifyIcon Bildirimleri

C# NotifyIcon Kullanımı ve C# NotifyIcon Bildirimleri
+ - 2

C# NotifyIcon Kullanımı ve C# NotifyIcon Bildirimleri, Bu dersimizle C# eğitim setimize devam ediyoruz.

C# NotifyIcon Kullanımı ve C# NotifyIcon Bildirimleri

C# NotifyIcon Nedir?

NotifyIcon‘ın Türkçe karşılığı Simge Bildirimi ‘dir. C# NotifyIcon programların arka planda çalışmasını saplayan bir nesnedir. NotifyIcon kullanmak, projemizi sağ alt kısımda yani saatin solunda simge olarak küçültmemizi sağlar. Bazen orada görünür bazende simgeler çok fazla ise gruplanırlar.

C# NotifyIcon Kullanımı 

NotifyIcon ‘un ne olduğunu öğrendiğimize göre nasıl kullanacağımıza bir bakalım. İlk olarak C# NotifyIcon Kullanımı  tanımlaması yapalım.

NotifyIcon notify_Icon = new NotifyIcon();  
  
private void AnaMenu_Load(object sender, EventArgs e)  
{   
     notify_Icon.Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location); 
}

NotifyIcon ‘umuzu tanımladık ve ona bir simge ayarladık. Burada NotifyIcon nesnemizin simgesini projemizin simgesi ile aynı olmasını söyledik.

Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);

Bu kod ile projemizin icon ‘unu elde ediyoruz.

Şimdi NotifyIcon tanımlamasını yaptıktan sonra asıl işleme geçiyoruz. Form’un Size özelliği değiştiğinde tetiklenen event olan ReSize eventi içerisinde kodlarımızı yazıyoruz.

        private void AnaMenu_Resize(object sender, EventArgs e)
        {
            if (FormWindowState.Minimized == WindowState)
                NotifyIcon();
        }
        void NotifyIcon()
        {
            this.Hide();
            notify_Icon.Visible = true;
            notify_Icon.Text = "Notify Icon Uygulaması";
            notify_Icon.BalloonTipTitle = "Notify Icon uygulaması arka planda çalışıyor";
            notify_Icon.BalloonTipText = "Program sağ alt köşede konumlandı.";
            notify_Icon.BalloonTipIcon = ToolTipIcon.Info;
            notify_Icon.ShowBalloonTip(2000);
            
            // notifyIcon için event ataması yaptık
            notify_Icon.MouseDoubleClick += new MouseEventHandler(notify_Icon_MouseDoubleClick);
        }

AnaMenu formumuz Minimized yapıldığında, program görev çubuğunda değil sağ altta simge olarak görünecek.

Diğer işlemlere geçmeden önce yukarıdaki kodlarımızı açıklayalım,

  • Hide() : Programı gizler.
  • MyIcon.Visible : NotifyIcon’ u gizler yada görünür yaparız.
  • MyIcon.Text : NotifyIcon üzerine gelindiğinde tooltip mesajını gösterir.
  • MyIcon.BalloonTipTitle : NotifyIcon balonunun başlığını belirtir.
  • MyIcon.BalloonTipText : NotifyIcon balonun üzerinde bulunan mesajı belirtir.
  • MyIcon.BalloonTipIcon : NotifyIcon balonun tipini belirtir.
  • MyIcon.ShowBalloonTip(2000) : NotifyIcon balonun ekranda gösterim süresini milisaniye cinsinden belirtir. Burada 2 saniyedir.

NotifyIcon haline gelmiş programı tekrar öne getirmek için  bir DoubleClick eventi tanımlıyoruz ve kodlarımızı yazıyoruz.

        void notify_Icon_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Show();
            notify_Icon.Visible = false;
        }

Simge durumuna gelmiş programın simgesine çift tık yaptığımızda program tekrar önümüze gelecektir.

***

Buraya kadar işlem tamam… Ancak biz Formun ControlBox yani sağ en üstteki çarpı butonuna basıldığında da kapanmasın ve simge durumuna getirsin istersek ne yapacağız? bu durumda formun FormClosing eventini kullanarak formun yani programın kapanmasını engelleyeceğiz. Çarpıya basıldığında da simge duruma geçmesini sağlayacağız.

        private void AnaMenu_FormClosing(object sender, FormClosingEventArgs e)
        {
                e.Cancel = true;
                NotifyIcon();
        }

Burada

e.Cancel = True;

Kod satırı ile formun kapanmasını engelliyoruz ve NotifyIcon haline getiriyoruz.

Şimdi ise program açıldıktan sonra hiçbir şekilde kapanmayacak duruma geldi. Sadece Görev Yöneticisi kullanılarak kapatılabilir. Bir de programın tamamen kapanmasını sağlayalım. Bunun içinde NotifyIcon ‘umuza bir ContextMenuStrip yani sağ tık menüsü ekleyelim ve buradan kapat dediğinde tamamen kapanmasını sağlayalım.

O halde toolboxtan forma bir tane c# notifyicon contextmenustrip ekleyelim ve bunu NotifyIcon ‘a bağlayalım. NotifyIcon () void’imize şu satırı da ekleyelim.

notify_Icon.ContextMenuStrip = contextMenuStrip1;

Form tasarıma gelelim ve alt kısma gelmiş olan ContexMenuStrip ‘e tıklayalım ve Öne Getir ve Uygulamayı Kapat menülerini ekleyelim. Sonra menülere çift tıklayarak click eventlerini oluşturulan ve kodlarımızı yazalım.

        int TamamenKapat = 0;
        private void uygulamayıKapatToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TamamenKapat = 1;
            Application.Exit();
        }
        private void öneGetirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Show();
            notify_Icon.Visible = false;
        }

Şimdi biz formun FormClosing eventine müdahale ettiğimizden şuanda da program kapanmayacaktır. O yüzden FormClosing eventine yazdığımız kodları aşağıdaki gibi düzenleyelim.

        private void AnaMenu_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (TamamenKapat == 1)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
                NotifyIcon();

Eğer TamamenKapat değişkeni 1 olduysa (NotifyIcon üzerinde sap tık yapıp Uygulamayı Kapat dendiyse) kapatmayı engellemiyoruz ve kapanmasını sağlıyoruz.

C# NotifyIcon Bildirimleri

C# NotifyIcon Kullanımı ve C# NotifyIcon Bildirimleri dersimizin ikinci kısmına geçelim. C# NotifyIcon Bildirimleri ‘ni nasıl verdirecğimizi görelim.

NOT: Bu C# NotifyIcon bildirimi program simge durumunda küçültülmüş haldeyken verebilir. Yani program görünürken bu bildirimler çalışmaz.

Öncelikle formumuza şu metodu ekleyelim.

        void NotifyBildirim(string baslik, string mesaj)
        {
            notify_Icon.BalloonTipText = mesaj;
            notify_Icon.BalloonTipIcon = ToolTipIcon.Info;
            notify_Icon.BalloonTipTitle = baslik;
            notify_Icon.ShowBalloonTip(3000);
        }

Bu kodlar sayesinde C# NotifyIcon bildirimi verebiliyoruz. Şimdi örnek kullanımını görelim.

Program kapatılmaya çalışıldığında yani formun sağ üst köşesindeki çarpıya basıldığında Program kapatılmadı! diye bir bildirim versin. Programı minimize ettiğimizde ise Program simge durumuna getirildi! diye bir bildirim versin.

FormClosing ve ReSize eventlerini aşağıdaki gibi düzenleyelim ve test edelim.

        private void AnaMenu_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (TamamenKapat == 1)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
                NotifyIcon();
                NotifyBildirim("Program kapatılmadı!", "Programı kapatamazsınız. Bu sebeple arka planda çalışmaya devam edecek!");
            }
        }
        private void AnaMenu_Resize(object sender, EventArgs e)
        {
            if (FormWindowState.Minimized == WindowState)
            {
                NotifyIcon();
                NotifyBildirim("Program simge durumuna getirildi!", "Program arka planda çalışmaya devam edecek!");
            }
        }

İlk önce Notify Icon uygulaması arka planda çalışıyor C# NotifyIcon bildirimi çıkacak sonrasında ise hangi yerden NotifyIcon olduysa o kısım ile ilgili bildirimi verecektir.

Bu yazımızda c# notifyicon örnekleri açısından güzel bir ders oldu. Ayrıca Github projemden inceleyebilirsiniz.


C# NotifyIcon Kullanımı ve C# NotifyIcon Bildirimleri, yazımızda bu kadar dostlar. Diğer derslerimizde görüşmek üzere.

Bence çok güzel ve açıklayıcı bir ders oldu. Bu dersimde o projenin içerisinde bir klasör olarak yerini almıştır. Buraya tıklayarak projeye ulaşabilirsiniz.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Bu ders C# Eğitim Setime eklediğim 106. Derstir. Bu eğitim çok daha büyüyecektir. Yani ben yazılımcı olduğum sürece ve bu site açık kaldığı sürece sürekli olarak yeni dersler eklenecektir.

Sağlıcakla ve takipte kalın. ;)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. Yazılarınızda programın çalışan halini gösteren bir resim olursa daha iyi olur
    İyi Günler

    • Merhaba,
      Github projemde yer aldığından dolayı, o projeyi indirip nasıl çalıştığına bakabilirsiniz. Bu sebeple resim ekleme gereği görmedim. Diğer bazı basit ve şüphemin olmadığı konularda da resim ekleme gereği duymuyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.