C# 如何从另一个项目中打开新表单

C# 如何从另一个项目中打开新表单,c#,winforms,visual-studio-2010,resources,preferences,C#,Winforms,Visual Studio 2010,Resources,Preferences,在我的soloution中,我创建了一些项目,其中一个是主项目,所以当应用程序启动时,它就会启动 我只想使用此主项目的属性文件来存储所有属性(字符串、对象等),因此在这种情况下,我必须在其他表单项目中引用此主表单项目(希望我有意义!) 现在的问题是,当我想在我的主表单项目中调用其中一个表单时,因为我不能引用它们(我得到这个循环依赖性警告),我无法这样做!在这种情况下,工作环境是什么?您只能在一个方向上链接。你必须把一个项目想象成一棵倒立的树。您可以引用父类,但父类不能引用子类。因此,如果您需要这

在我的soloution中,我创建了一些项目,其中一个是主项目,所以当应用程序启动时,它就会启动

我只想使用此主项目的属性文件来存储所有属性(字符串、对象等),因此在这种情况下,我必须在其他表单项目中引用此主表单项目(希望我有意义!)


现在的问题是,当我想在我的主表单项目中调用其中一个表单时,因为我不能引用它们(我得到这个循环依赖性警告),我无法这样做!在这种情况下,工作环境是什么?

您只能在一个方向上链接。你必须把一个项目想象成一棵倒立的树。您可以引用父类,但父类不能引用子类。因此,如果您需要这两个类都需要的功能,请将其移动到这两个类的父类,或将其移动到第三个类,然后两个类都引用它。

当您在主窗体中调用其中一个窗体时,您将主窗体实例作为构造函数参数传递。通过这种方式,您可以访问主项目的属性。主要形式必须先于其他形式。另一种方法不起作用,除非您将所有属性作为独立的类或构造来放置

我认为将所有资源文件放置在它们自己的DLL中会更有意义。您可以完全避免这个问题。我的想法是稍后创建一个表单,以便用户可以修改此资源。这是个坏主意吗?我不确定你能做到。资源是编译时的,除非您链接到外部文件,如图像或文本文件。看见