halilbey Merhabalar, sanırım bir yolu var. Lütfen aşağıdaki yönergeleri sırasıyla uygulayınız.
- Projenizdeki Program.cs dosyasını açın.
- Açtığınız Program.cs dosyasını aşağıdaki gibi düzenleyin.
Kodlar
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (NotifyIcon notifyIcon = new NotifyIcon()) {
notifyIcon.MouseClick += NotifyIcon_Click;
notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath);
notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] {
new MenuItem("Formu Göster", (s, e) => {
ShowForm();
}),
new MenuItem("Kapat", (s, e) => {
Environment.Exit(0);
}),
});
notifyIcon.Visible = true;
Application.Run();
notifyIcon.Visible = false;
}
}
private static void NotifyIcon_Click(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left)
ShowForm();
}
private static void ShowForm() {
try {
//Application.OpenForms methodu ile Show edilmiş formlar içinden istediğimiz formu bulup göstermeyi deniyoruz.
//Bu methodun çalışabilmesi için, formun en az bir kere Show edilmiş olması gerekir.
FrmTest frmTest = Application.OpenForms["FrmTest"] as FrmTest;
frmTest.Show();
} catch {
//Form hiç Show edilmemişse catch kod bloğu devreye girer.
//Aşağıdaki kod sayesinde de formu Show ederiz.
//Bir sonraki gösterme denemesinde Application.OpenForms methodu çalışır.
//Böylelikle bir sonraki denemede yeni bir formu değil, zaten açılmış olan formu gösterir.
new FrmTest().Show();
}
}
- Bu düzenlemeleri yaptıktan sonra programınızı çalıştırın.
- Program, ilk açılışta doğrudan sistem tepsisi üzerinde başlayacaktır.
- Programın, sistem tepsisi üzerindeki icon'una sağ tıklandığında iki seçenek belirecektir.
- Formu Göster seçeneğine tıklandığında form görünecektir.
- Form üzerindeki kapatma ("X") butonuna tıklandığında, uygulama sistem tepsisi üzerinde çalışmaya devam edecektir.
- Kapat seçeneğine tıklandığında uygulama kapatılacaktır.
- Ayrıca, uygulamanın kısayolunu Başlangıç klasörüne attığınızda, hem sistem tepsisinde, hem de sistem açılır açılmaz çalışacaktır.
Kaynak: https://stackoverflow.com/questions/1617784/how-to-start-the-application-directly-in-system-tray-net-c
Kolay gelsin, iyi çalışmalar.