|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// This is the form move event. We are causing the form to not show up on the
/// task bar when minimized.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Move(object sender, EventArgs e)
{
//This code causes the form to not show up on the task bar only in the tray.
//NOTE there is now a form property that will allow you to keep the application
//from every showing up in the task bar.
if (this == null)
{ //This happen on create.
return;
}
//If we are minimizing the form then hide it so it doesn't show up on the task bar
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
notifyIcon1.ShowBalloonTip(3000, "Test App",
"The App has be moved to the tray.",
ToolTipIcon.Info);
}
else
{//any other windows state show it.
this.Show();
}
}
/// <summary>
/// This is the form closing event. You have the opportunity to keep the form
/// from closing here.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//There are several ways to close an application.
//We are trying to find the click of the X in the upper right hand corner
//We will only allow the closing of this app if it is minized.
if (this.WindowState != FormWindowState.Minimized)
{
//we don't close the app...
e.Cancel = true;
//minimize the app and then display a message to the user so
//they understand they didn't close the app they just sent it to the tray.
this.WindowState = FormWindowState.Minimized;
//Show the message.
notifyIcon1.ShowBalloonTip(3000, "Test App",
"You have not closed this appliation."+
(Char)(13)+"It has be moved to the tray."+
(Char)(13)+"Right click the Icon to exit.",
ToolTipIcon.Info);
}
}
/// <summary>
/// This is the context menu for the notify icon
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
//If we don't minimize the window first we won't be able to close the window.
this.WindowState = FormWindowState.Minimized;
Close();
}
/// <summary>
/// This is the form menu to close the app.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
{
//If we don't minimize the window first we won't be able to close the window.
this.WindowState = FormWindowState.Minimized;
Close();
}
/// <summary>
/// This is the notify Icon double click event when you click the tray icon
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
// Activate the form.
this.Activate();
this.Focus();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I started my programmer career over 26 years ago doing COBOL and SAS on a MVS mainframe. It didn't take long for me to move into windows programming. I started my windows programming in Delphi (Pascal) with a Microsoft SQL server back end. I started working with vb.net when the beta 2 came out in 2001. After spending most of my programming life as a windows programmer I started to check out asp.net in 2004. I achieved my MCSD.net in April 2005. I have done a lot of MS SQL database stuff. I have a lot of experience with Window Service and Web services as well. I spent three years as a consultant programing in C#. I really enjoyed it and found the switch between vb.net and C# to be mostly syntax. In my current position I am programming in C# working on WPF and MSSql database stuff. Lately I have been using VS2019.
On a personal note I am a born again Christian, if anyone has any questions about what it means to have a right relationship with God or if you have questions about who Jesus Christ is, send me an e-mail. ben.kubicek[at]netzero[dot]com You need to replace the [at] with @ and [dot] with . for the email to work. My relationship with God gives purpose and meaning to my life.