想写个c#小程序,主要功能是程序打开后在文本框中显示传进来的参数,禁止二次启动!当二次时程序时,将二次启动的参数传进来显示在文本框中。注:不管启动多少次,窗体只显示一个,只是文本框 内容改变。以下是我写的main方法: static void Main(string [] txt)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool newWm;
Form1 fm = new Form1();
Mutex mu = new Mutex(true, "wm", out newWm); //对第二次运行进行限制
//如果第一次启动,将传进来的值显示在文本框中
if (newWm)
{
fm.setTxt(txt);
Application.Run(fm);
}
else//禁止二次启动,只接收启动时的参数,显示在文本框中
{
fm.setTxt(txt);
Application.Run(fm);
}
}以下是Form1中setTxt方法:
public void setTxt(string[] txt)
{
if (txt.Length > 0)
{
textBox1.Text = txt[0];
MessageBox.Show(txt[0]);//二次启动后,参数能取,但不能显示在文本框内
}
}
这样做了后,虽然,禁止了二次启动取到了参数,但不能把内容 显示在文本框内,想了很久找不到方法解决。请教高手指点。在此感激不尽!谢谢C#单例禁止多开控制台传参
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool newWm;
Form1 fm = new Form1();
Mutex mu = new Mutex(true, "wm", out newWm); //对第二次运行进行限制
//如果第一次启动,将传进来的值显示在文本框中
if (newWm)
{
fm.setTxt(txt);
Application.Run(fm);
}
else//禁止二次启动,只接收启动时的参数,显示在文本框中
{
fm.setTxt(txt);
Application.Run(fm);
}
}以下是Form1中setTxt方法:
public void setTxt(string[] txt)
{
if (txt.Length > 0)
{
textBox1.Text = txt[0];
MessageBox.Show(txt[0]);//二次启动后,参数能取,但不能显示在文本框内
}
}
这样做了后,虽然,禁止了二次启动取到了参数,但不能把内容 显示在文本框内,想了很久找不到方法解决。请教高手指点。在此感激不尽!谢谢C#单例禁止多开控制台传参
else//禁止二次启动,只接收启动时的参数,显示在文本框中
{
fm.setTxt(txt);
Application.Run(fm);
}
要禁止二次启动,这样是不行的,
你得找回第一次启动的窗口,把参数传给它,然后自己直接退出,
不能用Application.Run(fm)来显示的。
{
fm.setTxt(txt);
}