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) protected void Gizle_Click(object sender, System.EventArgs e) protected void Kapat_Click(object sender, System.EventArgs e) |
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) |
Ve şimdi hersey tamam. Programımız artık calısmaya hazır durumda. Hemen calıştırıp sonucu görebiliriz.
