我做好了一个窗口,在一个标志 bool islogin没有true之前会new一个登录窗,登录后可以显示主窗体了问题是,我不想让这个窗体重复运行实例,就在里面做了process监视相同实例就放弃,问题也出来了我现在想把这个程序带参数运行,假设我已经登录运行了窗体,这个时候再带参数运行一个实例,原来已登录的窗体如何得到参数又不会重建窗体?说得不明白,我会再补

解决方案 »

  1.   

    public static string[] firstpara;//这是应用程序入口点
     [STAThread]
     static void Main(string[] args) 
     {
         //监视重复实例
           Process instance = RunningInstance();       //行参赋给一个public变量,我只会这样传出去..有好办法让窗口得到参数吗
           firstpara = args;       //如果不是重复实例的话
           if(instance == null) 
    {
    Application.Run(new FormAdd(args,false,0));
    }
    else 
    { //如果运行实例带有参数,那么打开新窗口把参数带进去
    if(args.Length>0)
     OpenNew(true); //处理发现的例程 
    HandleRunningInstance(instance); 
    //MessageBox.Show("当前程序已经运行了!");


      }
      

  2.   

    不明白这里怎么写public static void OpenNew(bool call)
    {

    //这样会新建窗口..不是我想要的
    FormAdd opwin = new FormAdd(firstpara,call,ArticleID);
    opwin.ShowDialog();
    opwin = null;
    }
            
      

  3.   

    我想让已经建立好的FormAdd再 .Show出来,并把参数带给它,不想让它再新建立一个实例
      

  4.   

    因为Main入口是静态的,所以我没办法得到在OpenNew中得到  FormAdd.Show这个函数