C# ile Taskbarda Çalışan Program Hazırlamak

Bu makalemde size NotifyIcon ve ContextMenu kullanarak bir taskbara yerleşen program nasıl yapılır, onu göstereceğim. Daha fazla uzatmadan hemen kodlarımızı yazmaya başlayalım.

İlk olarak Visual Studio’yu açalım ve yeni bir proje yaratalım. Bu projenin adına istediğiniz gibi bir isim verebilirsiniz. Projemiz “C# Windows Application” olmalıdır.

Projemizi yarattıktan sonra Add / New Item diyerek yeni bir Icon ekleyelim. Iconumuzun Build Action’ı mutlaka “Embedded Resource” olmalı. Daha sonra Form1’ın kod kısmına gecelim.

Sınıfımızın içine

private NotifyIcon notifyicon;
private ContextMenu menu;

kodlarını ekleyelim. Formumuza iki kere tıklayalım ve aşağıdaki metotları kaynak kodumuza ekleyelim.

private void Form1_Load(object sender, System.EventArgs e)
{
notifyicon = new NotifyIcon(); //Yeni bir NotifyIcon tanımladık

notifyicon.Text = “NotifyIcon Ornegimiz”; //Mouse ile uzerine geldiğimizde olusacak yazı

notifyicon.Visible = true; //Gorunur ozelligi

notifyicon.Icon = new Icon(“Icon1.ico”); //Iconumuzu belirledik

menu = new ContextMenu(); //Yeni bir ContextMenu tanımladık

menu.MenuItems.Add(0, new MenuItem(“Goster”, new System.EventHandler(Goster_Click))); //Menuye eklemeler yapıyoruz.

menu.MenuItems.Add(1, new MenuItem(“Gizle”, new System.EventHandler(Gizle_Click)));

menu.MenuItems.Add(2, new MenuItem(“Kapat”, new System.EventHandler(Kapat_Click)));

notifyicon.ContextMenu = menu; //Menumuzu notifyiconun menusu olarak tanımladık
}

protected void Goster_Click(object sender, System.EventArgs e)
{
Show(); //Formumuzu normal ebatlara getirecek
}

protected void Gizle_Click(object sender, System.EventArgs e)
{
Hide(); // Formumuzu minimize edecek
}

protected void Kapat_Click(object sender, System.EventArgs e)
{
Close(); //Formumuzu kapatacak
}

Evet, şimdi programımızı çalıstırmaya hazırız. E o zaman çalıstıralım ve sonucu görelim. Gorduğunuz gibi programımız çalıştı. Programı kapatalım. O da ne! Iconumuz hala taskbarda duruyor. Peki bunu nasıl düzelteceğiz? Hemen cevap verelim. Kaynak kodumuzun biraz üstlerine bakıyoruz ve şu satırları goruyoruz:

protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components ! null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

Bu satırları aşağıdaki gibi değiştirdiğimizde progrm kapatıldığında taskbar daki icon da silinecektir.

protected override void Dispose( bool disposing )
{
if( disposing )
{
this.notifyicon.Dispose();;
components.Dispose();
}
base.Dispose( disposing );
}

Ve bir sorunumuz daha var. Programımızı açtığımız anda Form1 de gözuküyor. Peki Form1 gözükmeden sadece Iconumuzun gözükmesini nasıl sağlayacağız? Bunun da çozümü var. Biraz daha yukarılara bakıp

InitializeComponent();

satırından bir sonraki satıra su kodları koyuyoruz:

this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;

Bunları yaptıktan sonra yapmamız gerek bir değişiklik daha var. O da Goster_Click ve Gizle_Click’i su sekilde değiştirmek:

protected void Goster_Click(object sender, System.EventArgs e)
{
this.WindowState = FormWindowState.Normal; //Formumuzu normal ebatlara getircek
}

protected void Gizle_Click(object sender, System.EventArgs e)
{
this.WindowState = FormWindowState.Minimized; // Formumuzu minimize edecek
}

Ve şimdi hersey tamam. Programımız artık calısmaya hazır durumda. Hemen calıştırıp sonucu görebiliriz.

tuna

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir