Как не дать VS Designer испортить мой уже существующий код - PullRequest
3 голосов
/ 01 декабря 2010

Каждый раз, когда я перехожу в Designer View, весь мой код designer.cs портится: VS Designer реорганизует блоки кода и ставит раздражающие подробные префиксы, такие как "this.whatever", и полностью квалифицирует объекты, используя "System.Windows.Forms.whatever" I Know that "Designer.cs "не предназначен для редактирования, но мне нужно время от времени вносить некоторые изменения в код графического интерфейса, и я хотел бы, чтобы они оставались такими же, как я их изменил.

Как этого избежать?(Полагаю, это слишком сложно для VS)

(На самом деле я просто избегаю использования дизайнера и делаю все вручную, старый добрый способ)

Обновление:
Я удивлен, увидев стадную реакцию на этот вопрос.Извините, если это беспокоит, но интересно увидеть, что, прежде чем ударить меня по руке, говоря: «НЕ ДЕЛАЙТЕ ЭТО, Плохо», НИКТО не спросил, ПОЧЕМУ я хотел это сделать.и вот почему: многие из «автоматически сгенерированного» кода являются мусором и абсолютно бесполезны, они нуждаются в некотором улучшении.Один пример (среди многих других): зачем генерировать свойство Size / Location, если для режима Dock для элемента управления установлено значение Fill?Я хотел воспользоваться преимуществами без просадок.
В любом случае, я оставлю короткий ответ: Вы берете это ВСЕ (с мусором) или оставляете это ВСЕ.

Ответы [ 3 ]

10 голосов
/ 01 декабря 2010

Все просто: не редактируйте код конструктора. Эти предупреждения существуют по определенной причине, и для корректной работы Visual Studio необходимо владеть этим файлом.

Это частичный класс: все, что вам нужно сделать, вы можете сделать в соответствующем файле не дизайнера для этого класса; это включает в себя все ваши объявления управления и другие вещи. Поскольку вы пытаетесь полностью избежать дизайнера, дайте Visual Studio иметь этот файл и просто поместите все в ваш обычный файл .cs.

Обновление: Основываясь на комментарии, я хочу добавить следующее & mdash;
Или используйте дизайнер или не используйте дизайнер. Не стесняйтесь этого. Если вы используете и полагаетесь на дизайнера в некоторых случаях, вы ДОЛЖНЫ оставить файл дизайнера в покое.

Если вы избегаете дизайнера, тогда действительно избегайте дизайнера. Все вы можете делать в своем собственном коде (за исключением, конечно, визуальных очередей, но даже это можно сделать лучше с помощью прототипирования). Вы даже можете создать свой собственный дополнительный файл для частичного класса, чтобы сохранить код, похожий на конструктор.

Если вы используете дизайнер в качестве случайного генератора кода, чтобы уменьшить скучную типизацию, сделайте это в отдельном проекте или в виде одноразовой формы в существующем проекте и просто скопируйте / вставьте код поверх. 1022 *

3 голосов
/ 01 декабря 2010

Дизайнер должен писать код только в FormName.Designer.cs , к которому не следует прикасаться .Visual Stuiod объявляет частичный класс, реализованный в двух файлах - один для дизайнера и один для вашего кода.Я был бы удивлен, узнав, что дизайнер переписывает файл не для дизайнера.

Если это не поможет.пожалуйста, дайте более подробную информацию о том, какую версию VS вы используете, какие файлы перезаписываются и какие биты этих файлов.

1 голос
/ 01 декабря 2010

Вы всегда можете расширить класс конструктора, поместив свой пользовательский код в другой файл CS.Дизайнер не может этого коснуться, и компилятор скомпилирует ваши дополнения к этому классу.Если вы делаете что-то вроде добавления свойств или методов, это супер просто:

// MyWinformExtension.cs
partial class MyWinformName
{
    public string Foo { get; set; }

    public void ProcessData()
    {
        // do some processing..
    }
}

Вуаля!Вот как вы добавляете свой собственный код.Вы не можете изменить код конструктора, потому что он будет переписан IDE на протяжении всего дня.Вот почему в источнике есть предупреждения, и все остальные говорят вам то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...