26

I can't seem to get the form and the designer files to link in my project. They look like this in the Solution Explorer.

enter image description here

I have excluded the files from the project and then tried including them back in the project, but this didn't work. Below is the designer code and a snippet of the forms code in case there is something in there.

public partial class FormPrompt
{
  private Button ButtonOk;
  private Container Components;
  private Label LabelPleaseEnter;
  private Label LabelPrompt;
  private TextBox TextBoxData;

  private void InitializeComponent()
  {
    this.LabelPleaseEnter = new Label();
    this.LabelPrompt = new Label();
    this.TextBoxData = new TextBox();
    this.ButtonOk = new Button();
    this.LabelPleaseEnter.Location = new Point(8, 0x58);
    this.LabelPleaseEnter.Size = new Size(0x48, 0x10);
    this.LabelPleaseEnter.Text = "Please enter";
    this.LabelPrompt.Location = new Point(80, 0x58);
    this.LabelPrompt.Size = new Size(0x98, 0x10);
    this.LabelPrompt.Text = "LabelPrompt";
    this.TextBoxData.Location = new Point(8, 0x80);
    this.TextBoxData.Size = new Size(0xe0, 20);
    this.TextBoxData.Text = "TextBoxData";
    this.TextBoxData.KeyDown += new KeyEventHandler(this.FormPrompt_KeyDown);
    this.ButtonOk.Location = new Point(8, 0x100);
    this.ButtonOk.Size = new Size(0xe0, 0x38);
    this.ButtonOk.Text = "Ok";
    this.ButtonOk.Click += new EventHandler(this.ButtonOk_Click);
    base.ClientSize = new Size(240, 0x13e);
    base.Controls.Add(this.TextBoxData);
    base.Controls.Add(this.ButtonOk);
    base.Controls.Add(this.LabelPrompt);
    base.Controls.Add(this.LabelPleaseEnter);
    this.Text = "WinForm";
    base.KeyDown += new KeyEventHandler(this.FormPrompt_KeyDown);
  }
}    


public partial class FormPrompt : Form
{

  internal DateTime FDateData;
  internal DateTimePicker FDatePicker;
  internal decimal FDecimalData;
  internal int FIntData;
  internal TPromptType FPromptType;
  internal string FStringData;


  public FormPrompt()
  {
    this.InitializeComponent();
    this.FDatePicker = new DateTimePicker();
    this.FDatePicker.Top = this.TextBoxData.Top;
    this.FDatePicker.Left = this.TextBoxData.Left;
    this.FDatePicker.Width = this.TextBoxData.Width;
    this.FDatePicker.Height = this.TextBoxData.Height;
    this.FDatePicker.Format = DateTimePickerFormat.Short;
    base.Controls.Add(this.FDatePicker);
  }
}
energ1ser
  • 2,703
  • 4
  • 24
  • 31

5 Answers5

29

I've seen the same problem in Visual Studio 2008. Usually after compiling or closing and re-opening the solution the problem would fix itself. In Visual Studio 2012 I know that I have problems if I try to Add > Existing Item and choose all three files. Typically you only want to add the top level form.cs and VS will automatically include the .designer.cs and .resx files.

CtrlDot
  • 3,102
  • 3
  • 25
  • 32
  • 5
    The second part about just adding the form.cs worked really nicely, thanks. – energ1ser Mar 24 '14 at 03:27
  • Had this problem in VS 2015. I found that the .designer.cs and .resx files did not associate when I added the form .cs file at the same time as other, unrelated .cs files. In order to get it to work, I had to add *only* the form .cs file from the existing files dialogue. –  Aug 30 '17 at 15:55
  • Agree with energ1ser. Adding form only worked! Thanks muchly – Gus Aug 18 '19 at 16:58
26

Check the project (.csproj) file.

Inside the ItemGroup node, see if the .designer file is associated with the code-behind file. The XML should look something like this:

<Compile Include="FormPrompt.cs">
    <SubType>Form</SubType>
</Compile>
<Compile Include="FormPrompt.Designer.cs">
    <DependentUpon>FormPrompt.cs</DependentUpon>
</Compile>
Grant Winney
  • 65,241
  • 13
  • 115
  • 165
  • 1
    The accepted answer did not do the trick for me. This one worked perfectly. – Umair Sep 09 '21 at 07:30
  • 1
    Works for VB too. `Form` went missing from every form in the `.vbproj` file for some reason. As a test I added it to just the first form in the list and VS picked it up and now all the forms open in designer again.. – ourmandave Feb 22 '22 at 16:09
3

Check the project (.csproj)

<EmbeddedResource Include="Properties\Resources.resx">
  <Generator>ResXFileCodeGenerator</Generator> Check this
  <SubType>Designer</SubType>
  <LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>

<Compile Include="Properties\Resources.Designer.cs">
  <AutoGen>True</AutoGen> And Check this
  <DesignTime>True</DesignTime>
  <DependentUpon>Resources.resx</DependentUpon>
</Compile>
Anıl
  • 31
  • 1
  • 5
0

In VS2017 (c#) to solve it, in my case:

  1. exclude all file
  2. go to folder
  3. rename file (all 3 file .cs.Designer.cs .resx)
  4. refresh solution
  5. add to project back
andmattia
  • 357
  • 6
  • 22
0

include the .resx file into the project and in the properties of this file set Custom Tool as ResXFileCodeGenerator