Cookies on MGBrown.com

This web site uses some strictly nesessary cookies to make this web site work.

We would also like to set additional cookies to understand how you use MGBrown.com, remember your settings and improve our services.

New version of Magnify available for download

I have just completed version 1.1 of Magnify. This is available for download on the Download page.

I have only changed one significant thing: if it was invisible when it was shut down, it is now invisible when it starts up again. I have also changed the tray icon's tool tip and a number of the installer's descriptions.

So why wasn't this obvious feature in the original 1.0 version? Well the reason is that I couldn't work out how to do it. I tried setting this.Visible = false in the form load, but the Application.Run command sends a show message to the class after this event and the form is displayed anyway.

My second idea was to put this.Visible = false in the form activate event. This worked, but produced a rather annoying flash of the form.

Having run out of ideas I turned to the news group microsoft.public.dotnet.framework.windowsforms fat lot of use that was. The only suggestion I got was to minimize the form and set the ShowInTaskbar property to false. This is a bit dumb as what you end up with is a little window (just the titlebar) in the bottom left of your screen, just above the start button.

There was another suggestion that I put the notifyIcon on a control. You can't pass a control to Application.Run so that don't work either.

The solution I have discovered is to create your form before calling Application.Run.

So...

[STAThread]
static void Main()
{
   Application.Run(new Magnifier());
}

becomes...

[STAThread]
static void Main()
{
   Magnifier m = new Magnifier();
   m.Visible = false;
   m.Activate();
   Application.Run();
}

All you need to do then is ensure that you call Application.Exit() when you wish to actually end the application.

private void menuExit_Click(object sender, System.EventArgs e)
{
   Application.Exit();
}

It is so easy when you know, but trying to work this out with nothing but the help file is a bit trickier.

Comments

Sorry, this post is no longer accepting comments.