Frederik,
конечно ты прав, но не в одном факте. (этот я хотел знать)
Как только вы наследуете какой-либо компонент, студия пытается открыть его в редакторе дизайнеров. Это стандартное поведение визуальной студии.
Если дважды щелкнуть файл в обозревателе решений, откроется дизайнер.
Так что это действительно раздражает, если вы всегда получаете такой странный конструктор для классов, которые просто унаследованы от Компонента, но не содержат никаких видимых вещей.
Единственное, что действительно помогло мне, это установить этот атрибут: [System.ComponentModel.DesignerCategory ("")]
Я этого не знал =) так классный намек!
У меня просто проблема с частичными классами MainForm. Тогда он кричит "дубликат атрибута" ...
Здесь кто-нибудь знает решение, позволяющее избежать в некоторых частичных файлах классов конструктора, открываемого по двойному щелчку (без ошибки дублирующегося атрибута при компиляции?)
Кажется, я обнаружил небольшую ошибку в VS2005 ...
При установке DesignerCategory-Attribute для класса частичной формы при сохранении обозреватель решений отображает значок, определяющий файл как файл c # (без формы).
Затем я помещаю комментарий (//) перед атрибутом - и он продолжает открывать файл в представлении кода. Кроме того, после закрытия и повторного открытия он хранится внутри как не подлежащая разработке форма-часть.
Даже при повторном открытии полного решения.
Так что я думаю, что есть какая-то информация в файле решения или проекта ...
... Я нашел это в файле .csproj:
...
<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>
...
Время от времени студия обновляется - затем она снова обновляет файлы форм (дох) ... хорошо ... но, возможно, есть обходной путь, чтобы избежать этого.
чик ...
последнее редактирование ...
нашел что-то:
http://social.msdn.microsoft.com/Forums/en-US/csharpide/thread/64c77755-b0c1-4447-8ac9-b5a63a681b78
(назовите файл, который вы хотите открыть без дизайнера, в .Designer.cs)
(Да, вы должны назвать что-то, чтобы переключить это на LOL)
Кажется, работает.