Process me=Process.GetCurrentProcess();
Process[] process=Process.GetProcessesByName(me.ProcessName);
if (process.Length>1)
{
   MessageBox.Show("该程序已经运行请不要运行第二次","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
   Application.Exit();
}

解决方案 »

  1.   

    foreach(Form f in this.MdiChildren)
    {
    if ( f is FormB)
    {
    f.Show();
    }
    else
    {
    FormB formNew = new FormB();
    formNew.MdiParent = this;
    formNew.Show();
    }
    }
      

  2.   

    /// <summary>
            /// 定义子窗体变量
            /// </summary>
            private frmNewOrder frmneworder;
            private FrmSendOrder frmsendorder;        private void neworderToolStripMenuItem_Click(object sender, EventArgs e)
            {
                try
                {
                    if (this.frmneworder == null || !this.frmneworder.Created)
                    {                    this.frmneworder = new frmNewOrder();
                        this.frmneworder.MdiParent = this;
                        this.frmneworder.Show();
                    }
                    else
                    {
                        this.frmneworder.Show();
                    }
                    this.frmneworder.Focus();
                }
                catch (Exception sysE)
                {
                    MessageBox.Show(sysE.Message);
                }
            }
      

  3.   

    static void Main() 
    {
    Mutex mutex = new Mutex(false, "ThisShouldOnlyRunOnce");
    //判断互斥体是否使用中。
    bool Running = !mutex.WaitOne(0, false);
    if (! Running) 
    {
    Application.Run(new Form1());
    }
    else   
    {
    MessageBox.Show("应用程序已经启动!","系统提示");
    }
    }
    别人教我的