请问:c# 的解决方案中有两个项目,在一个项目中隐藏了一个窗体,在另一个项目中如何显示这个窗体呢?

解决方案 »

  1.   

    是两个项目,一个项目A是主要界面,另一个项目B相当于一个伺服器,用来控制主要项目的显示退出、信息提醒等功能,并且开机自动运行等,A项目中的界面隐藏后,想要在B项目控制显示;
      

  2.   

    B使用API->SendMessage发送特定消息给A, A在收到消息时再控制窗体界面是否显示就OK...
      

  3.   

    B使用API-> SendMessage发送特定消息给A,   A在收到消息时再控制窗体界面是否显示就OK... 
    具体怎么实现呢? 
      

  4.   

    两个项目都是客户端的!B项目开机时运行,在B项目中点登录,A项目运行,当A项目退出后B项目依然运行
      

  5.   

    B:
    System.Diagnostics.Process.Start("A.exe");
    Application.Exit();A:
    System.Diagnostics.Process.Start("B.exe");
    Application.Exit();放在x.designer.cs里的protected override void Dispose(bool disposing){}里
    不知道是不是你要的结果
      

  6.   

    B项目是不允许退出的,相当于一个服务,B项目本来准备用服务 和notifyIcon来实现的可是服务没有窗体,加入notifyIcon后托盘不能显示,所以B项目改为用window项目,但隐藏了窗体,只显示托盘.
      

  7.   

    实际上你想要的就是进程间通信。方法有很多种。可以用 Process.GetProcessesByName 跟据EXE文件名(不含.exe后缀)获得一个A进程,然后调用它的  MainWindowHandle例如: public static void ActiveWindow()
    {
    Process [] proc = Process.GetProcessesByName("A"); foreach (Process p in proc)
    {
    SetForegroundWindow(p.MainWindowHandle);
    }
    }其中:
    // 用于激活已打开的窗体
    [DllImport("user32.dll")]
    public static extern void SetForegroundWindow(IntPtr hwnd);
      

  8.   

    不做成一个项目的原因就是,A项目占用系统资源较多,B项目占很少的资源,且A项目可以不运行,但B项目必须运行,相当于一个服务,所以让B项目单独出来,这样可以让系统占用较少的资源而且可以实时提供一个简单的服务
      

  9.   

    SetForegroundWindow(p.MainWindowHandle); 中MainWindowHandle为0
      

  10.   

    哈哈,问题已经解决了,谢谢大家的提醒!
    实现方法如下:用在B项目中用sendMessage发送消息,在A项目中获取该消息,根据获取的消息显示窗体!
    具体实现的链接:http://lee.bloghome.cn/posts/4027.html