Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Tolga Tiryaki
Tolga Tiryaki
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
1 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  C# / VC#/.NET Tolga Tiryaki
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 13.9.2003
Okunma Sayısı : 37979
Yorum Sayısı : 4     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 29.3.2024
Turhal Temizer
Mac OS/X Removing CUDA 29.3.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 29.3.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 29.3.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
C# ile Taskbarda Çalışan Program Hazırlamak
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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.

Umarım herkes için faydalı bir yazı olmustur. Benim için kod yazmak yazı yazmaktan daha kolay, bunu herkesin tatmasını isterim :)) Yeni yazılarda gorusmek dileğiyle hoşçakalın.

Makale:
C# ile Taskbarda Çalışan Program Hazırlamak C#, Visual C# ve .NET Tolga Tiryaki
  • Yazılan Yorumlar
  • Yorum Yaz
HAZ
26
2005
private void notifyicon_Click(object sender, System.EventArgs e) { this.WindowState = FormWindowState.Normal }
HAZ
26
2005
this.notifyicon.DoubleClick += new System.EventHandler(this.notifyicon_Click) eklersek dadından yenmez...
TEM
28
2004
içtenlikle teşekkürler
EYL
14
2003
Makaleyi burada yayınlarken yapılan bir değişiklik olmus ve kodlarda hata ortaya cıkmıs. protected override void Dispose( bool disposing ) { if( disposing ) { this.notifyicon.Dispose();; components.Dispose(); } base.Dispose( disposing ); } satırlarını protected override void Dispose( bool disposing ) { if( disposing ) { this.notifyicon.Dispose(); } base.Dispose( disposing ); } olarak değiştirirseniz sorun cozulecektir.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor