C# 在单个解决方案中,在另一个项目中使用来自一个项目的表单
我有一个解决方案,其中有五个项目。客户端项目从PokeEngine.dll(同一解决方案中的一个项目)中提取依赖项。PokeEngine.dll中的非表单类按预期工作,但表单类似乎存在一些问题 目标框架是.NET framework 4客户端配置文件 下面是一些代码片段,我不知道它们是否有用 在客户端命名空间中: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
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