我有一个winform应用程序通过一个表单,需要应用程序只在Windows中运行一个实例 当隐藏
时,我无法显示表单我需要一个明确的代码来显示我隐藏的表单
以我的形式
Undefined variable: _SESSION in
program.cs只在Windows中运行一个实例并专注于应用程序 和我的问题是如何显示主要形式何时隐藏()???
this.Hide();
更新:上面的代码适用于前景窗口和最小化窗口 ...可以。 我的问题是如何显示隐藏的表单???
抱歉我的英文
答案 0 :(得分:1)
我找到了解决方案。 NewInstanceHandler()中的任何代码都在旧进程上运行:)我通过进程ID检查它。我认为这是最好的灵魂。
添加 Microsoft.VisualBasic.ApplicationServices 右键单击引用并选中 Microsoft.VisualBasic 。
using Microsoft.VisualBasic.ApplicationServices;
static Form1 MainForm;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
MainForm = new Form1();
SingleInstanceApplication.Run(MainForm, NewInstanceHandler);
}
public static void NewInstanceHandler(object sender, StartupNextInstanceEventArgs e)
{
// anything u need run on old instance
// MainForm.Hide();
MainForm.Show();
MainForm.WindowState = FormWindowState.Normal;
e.BringToForeground = true;
}
public class SingleInstanceApplication : WindowsFormsApplicationBase
{
private SingleInstanceApplication()
{
base.IsSingleInstance = true;
}
public static void Run(Form f, StartupNextInstanceEventHandler startupHandler)
{
SingleInstanceApplication app = new SingleInstanceApplication();
app.MainForm = f;
app.StartupNextInstance += startupHandler;
app.Run(new string[0]);
}
}