C# 在单个解决方案中,在另一个项目中使用来自一个项目的表单

C# 在单个解决方案中,在另一个项目中使用来自一个项目的表单,c#,winforms,solution,C#,Winforms,Solution,我有一个解决方案,其中有五个项目。客户端项目从PokeEngine.dll(同一解决方案中的一个项目)中提取依赖项。PokeEngine.dll中的非表单类按预期工作,但表单类似乎存在一些问题 目标框架是.NET framework 4客户端配置文件 下面是一些代码片段,我不知道它们是否有用 在客户端命名空间中: static class Program { // the forms used by the client public static frmGameWindow g

我有一个解决方案,其中有五个项目。客户端项目从PokeEngine.dll(同一解决方案中的一个项目)中提取依赖项。PokeEngine.dll中的非表单类按预期工作,但表单类似乎存在一些问题

目标框架是.NET framework 4客户端配置文件

下面是一些代码片段,我不知道它们是否有用

在客户端命名空间中:

static class Program
{
    // the forms used by the client
    public static frmGameWindow gameWindow;
    public static frmMenus menuWindow;
    public static frmBattleWindow battleWindow; // exists in PokeEngine project
    public static frmPokeDex pokedexWindow; // exists in PokeEngine project

    ....

    // main entry point of the client
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        initClient();

        Application.Run(menuWindow);

        destroyGame();
    }

    ...

    /// <summary>
    /// Initializes client settings.
    /// </summary>
    public static void initClient()
    {
        SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());

        gameWindow = new frmGameWindow();
        menuWindow = new frmMenus();
        battleWindow = new frmBattleWindow(); // causes the program to not run
        pokedexWindow = new frmPokeDex(); // doesn't cause the program to not run

        // local settings (localhost) - testing purposes only
        //connectionInfo = new ConnInfo("localhost", 4000);

        // live settings (my house)
        connectionInfo = new ConnInfo("xxx.xxx.xxx.xxx", 4000);

        gameWindow.Text = connectionInfo.gameName;

        Client.setUpNetwork(connectionInfo.gameName);
    }
}
未被注释掉,但frmPokedexWindow位于同一个项目中,运行良好

但是,当我尝试.Show()pokedexWindow时,它不会显示它。当battleWindow由另一个方法(而不是initClient)初始化时,游戏运行,但是调用它的.Show()方法不会运行


如前所述,此错误仅发生在其他计算机上,我的计算机(调试和.exe)按预期运行游戏。。。有什么原因吗?

你有例外吗?您是否检查了Windows错误日志?如果从命令行启动.exe,是否有任何输出?我没有收到任何异常,我没有拥有Win8计算机,我的朋友有。我可以让他们中的一个试着检查错误日志。我不确定是否有任何输出,也不确定如何从命令提示符检查它。我会做一些调查,并寻求他们的帮助。在没有Win8机器的情况下为Win8开发真的很麻烦,呵呵…@EugenRieck:我已经在Win7中通过命令提示符运行了我的应用程序,即使在关闭程序后也没有显示输出(希望打印0)。我可以尝试在Win8中检查潜在的输出,如果可能的话。@Silver当然是在发生错误的系统上生成的输出。。。
battleWindow = new frmBattleWindow(); // causes the program to not run