简体   繁体   中英

Disable designer in Visual Studio?

I'm using Visual C# Express to write Windows Form applications, and call me old school, but I don't like the designer. It is a nuisance and pollutes my project with lots of unwanted files, as well as unwanted monkey-generated source code.

Please tell me there's a way to turn it off completely.

Add a [System.ComponentModel.DesignerCategory("")] attribute before a UI class to avoid designer activation on double-click.

Note that including System.ComponentModel at the top of the file and then just adding the attribute as [DesignerCategory("")] will not work (at least not in Visual Studio 2010/2013). You must use the full, namespace-qualified attribute type name.

右键单击项目文件,然后选择打开方式,您可以设置打开文件类型的默认值。

Actually, all you have to do in VS2010 is right click the .cs file that you don't want to open in the designer, select the "Open With.." option, then make CSharp Editor the default. Notice that the form view is the default before you change it.

Frederik, sure you're right, but not in one fact. ( this one IJ wanted to know ) As soon as you inherit from any Component, the studio tries to open it in a designer editor. That is a default behaviour of the visual studio.

If you double click a file in the solution explorer, then a designer opens. So it's really annoying if you always get such strange designer for classes that are just inherited from a Component, but do not contain any visible things.

The only thing that really helped me out, was to set this attribute:[System.ComponentModel.DesignerCategory("")]

I didn't knew this =) so cool hint !

I just get a problem with partial MainForm classes. Then it yells "duplicate attribute"...

Does here anybody knows a solution to avoid in some partial class-files the designer to be opened on double click ( without the duplicate attribute error on compile ? )


I think I found a small bug, in VS2005... By setting the DesignerCategory-Attribute on the partial form class, on save the solution explorer shows up an icon, identifying the file as ac# file (no form).

Then I put a comment (//) before the attribute - and it keeps opening the file in code view. Also after closing and reopening it's stored internally as a non designable form-part. Even on re opening the complete solution.

So I think there is any information in the solution or project file...

... I found this in the .csproj file: ...

<Compile Include="GUI\VFormMain_Test.cs">
</Compile>
<Compile Include="GUI\VFormMain_Theme.cs">
</Compile>
<Compile Include="Core\VTTEnv.cs" />
<Compile Include="GUI\VFormMain.cs">
  <SubType>form</SubType>
</Compile>

...

Studio updates from time to time - then it updated the form files again (doh)... ok.. but there is probably a workaround to avoid this.


snip... last edit... found something:

http://social.msdn.microsoft.com/Forums/en-US/csharpide/thread/64c77755-b0c1-4447-8ac9-b5a63a681b78

( name the file you want to open without designer into .Designer.cs )

( Yes you have to name something to switch it of LOL ) Seems to work.

只需不添加“新表单” ,将新类添加到项目中并从Form类继承即可。

If you don't want to use the designer, then don't use it ?

You can create a new form from scratch, without the designer generating any code by creating a new empty class, and let the class inherit from System.Windows.Forms.Form

Then, VS.NET will probably still indicate that your class is a Form, and you can still open it up in the designer if you want. (And drop controls on it).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM