2014-01-05 3 views
0

Я попытался переименовать свою форму, я сделал это, но потом .. Я даже не знаю, как это объяснить. Форма все еще видна в разделе проводника решений, но я не могу ее открыть. В нем говорится, что «Элемент Form4.cs не существует в каталоге проекта. Возможно, он был перемещен, переименован или удален».Пробовал переименовать форму, и теперь я не могу ее отредактировать

Что делать?

+3

Переименовать его обратно? – Joe

+1

Похоже, вы переименовали файл формы в файловой системе. И ваш проект по-прежнему ссылается на старое имя файла. Используйте средство просмотра Visual Studio для переименования. В настоящее время вы можете щелкнуть значок * Показать все файлы * в проводнике решений, чтобы найти новый файл. Затем нажмите «Включить в проект», чтобы добавить новый файл, и удалите старый файл из проекта –

+0

@ Joe все, что я переименовал, теперь находится на разных вкладках. Я волнуюсь, и я не знаю, что делать. – MarisP

ответ

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 сделает это за вас правильно.

Смежные вопросы