Minimize to tray
c#
Solution
Handle the form’s Resize event. In this handler, you override the basic functionality of the Resize event to make the form minimize to the system tray and not to the taskbar. This can be done by doing the following in your form’s Resize event handler:
- Check whether the form’s WindowState property is set to FormWindowState.Minimized. If yes, hide your form, enable the NotifyIcon object, and show the balloon tip that shows some information.
- Once the WindowState becomes FormWindowState.Normal, disable the NotifyIcon object by setting its Visible property to false.
- Now, you want the window to reappear when you double click on the NotifyIcon object in the taskbar. For this, handle the NotifyIcon’s `MouseDoubleClick` event. Here, you show the form using the `Show()` method.
In the form resize event, do the check there and hide the form
private void Form_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
this.Hide();
}
}
Then when clicking on the taskbar icon just restore it.
private void notifyIcon_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
Refer: How do I minimize a WinForms application to the notification area? minimize app to system tray
Problem
my app is for chatting, and i think if someone needs to hide it quick, but doesn't want to close it, i came up with this: ``` private void button6_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } ``` however, instead of going to the taskbar, i want it to appear (no popup) in the tray, just the apps icon, and when someone clicks it it needs to set this ``` this.WindowState = FormWindowState.Normal; ``` Is this possible, how? Also by system tray i mean the one in the bottom right corner, next to the time I still can't get this to work, nothing appears in the notification bar if I do what you guys said (btw: this is the full code to minimise) ``` private void button6_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void Form_Resize(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { this.Hide(); } } private void notifyIcon_Click(object sender, EventArgs e) { this.Show(); this.WindowState = FormWindowState.Normal; } ``` Why isn't this working?