Form Fade In/Out Effect and Notification Window
Introduction
Background processes, applications that run from the tray, and many other types of applications frequently need to show notification/alerts to the user. One of the common examples is Outlook 2003, which shows e-mail notification just over the system tray. This article is about a base class, TransDialog, that derives from Form and adds the fade in/out effect to any form. It also contains a notification form that derives from this TransDialog and shows notification over the system tray.
Using the Code
The project contains the following three forms/classes:
- TransDialog—Derives from System.Windows.Forms.Form and adds the fade in effect
- Notification—Derives from TransDialog and actually shows the notification
- Form1—Driver form used just for the demo
If you are just interested in adding the fade in/out effect, you can derive any TransDialog form as follows.
public class Notification : TransDialog
{
#region Ctor, init code and dispose
public Notification()
: base(true)
{
InitializeComponent();
}
/* ... */
}
Passing true to the base class will ensure that when you call close on the Notification form, TransDialog will call Dispose and do the cleanup.
How TransDialog Works
TransDialog uses the layering (opacity) property of the form to add the fade in/out effect. At the Form Load event, the opacity of the form is set to 0 (completely transparent or invisible) and a m_clock timer is started. The m_bShowing variable is set to true. The timer is set to tick every 100 ms.
private void TransDialog_Load(object sender, EventArgs e)
{
this.Opacity = 0.0;
m_bShowing = true;
m_clock.Start();
}
On every Tick event, as long as m_bShowing is true, the opacity is increased until is reaches 1 (completely opaque):
if (m_bShowing)
{
if (this.Opacity < 1)
{
this.Opacity += 0.1;
}
else
{
m_clock.Stop();
}
}
This gives the fade-in effect.
On the form closing event, the m_bShowing is set to false, the form closing is canceled, and the timer is started again. However, because this time m_bShowing is false, the opacity is decreased until 0 is reached (completely transparent). This gives the fade-out effect.
private void TransDialog_Closing(object sender, CancelEventArgs e)
{
/* ... */
m_origDialogResult = this.DialogResult;
e.Cancel = true;
m_bShowing = false;
m_clock.Start();
/* ... */
}
How Notification Works
The fade-in/out effect on the notification works just by deriving from TransDialog. To show the form at the correct location over the system tray, the following code is used in the load event handler:
private void Notification_Load(object sender, System.EventArgs e)
{
/* ... */
int screenWidth = Screen.PrimaryScreen.WorkingArea.Width;
int screenHeight = Screen.PrimaryScreen.WorkingArea.Height;
this.Left = screenWidth - this.Width;
this.Top = screenHeight - this.Height;
/* ... */
}

Comments
Lightweight stylish â Nike Unshackled TR Attack in jump 2013 3 series
Posted by Tufffruntee on 04/22/2013 02:02pmNike Free TR Stalwart 3 prominent features is to use the new scheme: Nike Free 5 soles improved bending Gouge; new tractor imitate making training more focused when; lighter load, the permeability is stronger, and more fashionable shoe designs not not order shoes [url=http://northernroofing.co.uk/roofins.cfm]nike free run uk[/url] more smug wearing, barefoot training feel, but also more in vogue appearance. Nike Manumitted TR Fit 3 provides supreme lateral perseverance, you can have the legs in the leg during training. Acrid vamp majuscule letters breathable grating, lower soap up's unique map can be [url=http://northernroofing.co.uk/roofins.cfm]nike free uk[/url] seen through it. Lightweight, rugged, piddling bubbles means used by completely occasional seams, more limber, support is stronger. Lack more help, role of a training exercise, foam close in more parts of the need in return flexibility, bubbles loose. Put to use two-ply say nothing moisture wicking fake materials, vapid on your feet, hands maintain feet dry and comfortable. Phylite [url=http://fossilsdirect.co.uk/glossarey.cfm]nike huarache free[/url] midsole offers lightweight shock sustained, special durability and sedate outsole can do to greatly adjust the comprehensive avoirdupois of the shoe. Qianzhang pods on the outsole and heel-shaped Green rubber enhances the shoe multi-directional purchase on extraordinary surfaces.
ReplyWow
Posted by adfdfsdf on 02/05/2013 03:06amYour taskbar gave me cancer.
ReplyFew issues
Posted by Saeed on 10/31/2008 12:30amFirst of all good work 2nd- Once you introduce static control into the form affects controls will not show .. 3rd why not just introduce [CODE} public static void FadeForm(System.Windows.Forms.Form f,bool FadeOut) { float v1 = 1.0F; float v2 = 0.0F; float vd = 0.1F; if (FadeOut) // fadeout { for (float v = v1; v >=v2; v -= vd) { f.Opacity = v; f.Refresh(); } f.Opacity = v2; } else // fadein { for ( float v=v2;v <= v1 ;v += vd) { f.Opacity = v; f.Refresh(); } f.Opacity = v1; } f.Refresh(); } [/CODE} to control the transpanacy . its much easier and simpler.
Replylooking for C or C++ solution to notification windows
Posted by yuban on 09/24/2007 08:58pmI am trying to find any solution or documentation on the windows api ( if there is one ) for presenting a simple square notification window - such as "Updates are available". Would be nice to add an icon, etc. but even nicer to find documentation on presenting such a feature. Any suggestions ? thx
ReplyCan't get source and demo files
Posted by javanic on 12/13/2005 11:31amHi. Thanks for the article. I was just what I was looking for, but unfortunately I can't download the demo program or the source code. The links try to open a get_file.php. Any ideas?
Reply