MS C# tutorial

CU

Platinum Member
Aug 14, 2000
2,419
53
91
Starting looking at C# and Visual Studio since it had been a few years since I looked at Visual Studio. I started the picture viewer tutorial. Two problems. At first the form designer wouldn't update. I would place layouts and buttons and set them up to look like the example, but everything appeared in the top left. However when I ran the program everything looked correct. I closed Visual Studio and reloaded the solution and it looked correct. Anyone every see that before? Well this morning I loaded up my solution and my close button is below the set background, clear picture, and show picture button. They are not on the same row. It was fine last night. I can put the close button between the set background and clear picture buttons and it works fine, but when I drag it to the left of the set background button it drops down to start a new row. There is plenty of room for the button, so I don't really no what is wrong. Also when I run it it is wrong, so it is not just a designer bug like before.

Here is what I am trying to do.
http://msdn.microsoft.com/en-us/library/dd492173
 

Train

Lifer
Jun 22, 2000
13,599
90
91
www.bing.com
Which version of VS are you using? can you post your project file?

I have run into scenarios where the designer refuses to update, and it can be annoying. Sometimes it can be caused by something simple like having the file with the partial class that holds all the designer code being opened, and VS doesnt want to overwrite it, assuming you made changes or something.
 

Train

Lifer
Jun 22, 2000
13,599
90
91
www.bing.com
Come to think of it, the most common cause of a designer failing to update is that you have a custom or 3rd party control that is not playing nice.

Be sure to have parameterless constructor available for any control used on the form, so that the designer has something to instantiate it with.
 

CU

Platinum Member
Aug 14, 2000
2,419
53
91
This is C# 2010 Express. I don't have any custom controls. Just a fresh install after downloading it last night.

Here is the project file.

Code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{A303E400-BC8C-4C83-AA67-EB00C9A11DD1}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>PictureViewer</RootNamespace>
    <AssemblyName>PictureViewer</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <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>
    <EmbeddedResource Include="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
      <SubType>Designer</SubType>
    </EmbeddedResource>
    <Compile Include="Properties\Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <None Include="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    </None>
    <Compile Include="Properties\Settings.Designer.cs">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
    </Compile>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
 

CU

Platinum Member
Aug 14, 2000
2,419
53
91
Found it. Not sure how I did it, but I set FlowBreak to true for one of my buttons and that was causing my 2nd problem. Not sure what broke the designer update last night, but it seems fine now.