Skip to content

Instantly share code, notes, and snippets.

@jjokela
Created August 11, 2014 11:05
Show Gist options
  • Save jjokela/2733d9fa9466db4f6b37 to your computer and use it in GitHub Desktop.
Save jjokela/2733d9fa9466db4f6b37 to your computer and use it in GitHub Desktop.
Winform single instance
using Microsoft.VisualBasic.ApplicationServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace WinFormsSingleInstance
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SingleInstanceController controller = new SingleInstanceController();
// args needed for controller.Run()
string[] args = Environment.GetCommandLineArgs();
controller.Run(args);
}
// creates only single instance of application
public class SingleInstanceController : WindowsFormsApplicationBase
{
public SingleInstanceController()
{
IsSingleInstance = true;
StartupNextInstance += this_StartupNextInstance;
}
void this_StartupNextInstance(object sender, StartupNextInstanceEventArgs e)
{
Form1 form = MainForm as Form1; //My derived form type
}
protected override void OnCreateMainForm()
{
MainForm = new Form1();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment