【问题标题】:How to convert three Windows Forms applications to one?如何将三个 Windows 窗体应用程序转换为一个?
【发布时间】:2012-10-29 00:44:14
【问题描述】:

我创建了 3 个不同(但共享相同的数据库连接)的 Windows 窗体应用程序。每个这样的应用程序都非常简单,只包含一个表单。

假设我有 3 个表单:Form1、Form2 和 Form3,我现在想定义 Form1 是主表单(也是唯一的应用程序),并从 Form1 中调用 Form2 和 Form3,作为 Form1 应用程序的一部分,而不是独立的应用程序。类似于:

private void btnForm2_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.Show();
}

private void btnForm3_Click(object sender, EventArgs e)
{
    Form3 form3 = new Form3();
    form3.Show();
}

虽然这看起来很简单,但我很困惑如何将 Form2 和 Form3 导入 Form1 项目而不损害 VS 2010 已经“自动”执行的操作的完整性。

也就是说,我认为我需要拖放到Form1项目中的不仅仅是Form2.cs文件,还有其他文件,例如Form2.Designer.csForm2.resx和...更多的?

我是否也需要复制项目的PropertiesReferences下的文件?

有条不紊地将三个项目合二为一需要哪些步骤?

【问题讨论】:

    标签: c# winforms visual-studio-2010


    【解决方案1】:

    从您的解决方案“Form1”中,您可以将其他项目导入其中。

    (右键解决方案:添加>现有项目)

    所以现在你将拥有:

    - MySolution
        - Project: Form1
        - Project: Form2
        - Project: Form3
    

    您必须设置构建顺序和项目之间的构建依赖关系。

    另一种方法是手动将文件从一个项目复制到另一个项目并将它们添加到您的项目中。是的,您需要 VS 创建的所有文件。 (resx、.Designer.cs 等)只需将整个包复制并拖放到项目的文件夹中即可。

    不,您不需要触摸属性或引用,除非另外两个项目之一有不同的引用。它应该很容易跟踪,因为你复制的文件在文件的“使用 xxx”部分会有错误。您只需要添加正确的引用即可。

    (右键项目:添加>现有项目)

    由于您的项目看起来并不大,我会选择解决方案二。

    【讨论】:

    • 谢谢。我已经按照您在“解决方案一”中的描述组织了解决方案。我想要的实际上是解决方案二。我会尝试你的建议并报告它是如何工作的。
    • 如果我没记错的话,当你添加一个 .cs 文件在同一个目录中时 .designer.cs 和 .resx,VS 会自动添加其他同名的文件。如果没有,手动添加所有文件,VS应该正确链接它们。
    • 您的解决方案两个有效 - 添加的提示是只需要复制 3 个文件(每个辅助表单应用程序):Form2.csForm2.Designer.csForm2.resx。此外,如果逐字复制(如我的情况),则需要解析原始命名空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2022-09-24
    • 2019-11-12
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多