我试图重命名我的表格,我做了那个,但后来......我甚至不知道如何解释它。表单在解决方案资源管理器部分仍然可见,但我无法打开它。它说“项目'Form4.cs在项目目录中不存在。它可能已被移动,重命名或删除。”
怎么办?
答案 0 :(得分:1)
表单名称不是神奇地隐藏在某处的东西所以应该很容易清理这个烂摊子。如果您打开.csproj
文件,则会看到包含类似内容的部分:
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
正如您可能猜到的,这些所有条目(“AssemblyInfo.cs”和“Program.cs”除外)应与文件系统中的现有文件相关,通常它们的名称应相互匹配(即XXX.Designer.cs
对应于XXX.cs
和XXX.resx
)。
此外,在一个简单的项目中,这些是在整个代码中使用表单名称的常见位置:
...\Form1.cs(13): public partial class Form1 : Form
...\Form1.cs(15): public Form1()
...\Form1.Designer.cs(3): partial class Form1
...\Form1.Designer.cs(43): // Form1
...\Form1.Designer.cs(49): this.Name = "Form1";
...\Form1.Designer.cs(50): this.Text = "Form1";
...\Program.cs(23): Application.Run(new Form1());
如果你能设法修复所有这些地方并使它们保持连贯,那么一切都应该没问题。
您可以撤消您在文件系统中为文件系统所做的任何更改以匹配上面列出的条目,或者您可以关闭VS并手动编辑.csproj
文件,使其与您的文件相对应有。
通常您应该使用VS接口重命名表单和类,因为它将确保传播所有更改。因此,在您的情况下,更容易恢复您的手动更改,并让VS正确地为您执行此操作。