Можно ли изменить генерацию кода Конструктора форм Победы VS?

Мы реализовали новые стандарты кодирования, которые призывают, чтобы у наших членов парламента, не занимающих официального поста был начальный символ подчеркивания. Как так:

private System.Windows.Forms.Label _label;

К сожалению, VS произведет значение по умолчанию ниже при перетаскивании новой маркировки на форму:

private System.Windows.Forms.Label label1;

Есть ли способ изменить значение по умолчанию на:

private System.Windows.Forms.Label _label1;

Это принадлежит всем средствам управления, не только маркирует, и да они должны использоваться из кода.

Удачи,

Plamen

8
задан Big Endian 9 April 2010 в 13:23
поделиться

6 ответов

Помимо создания собственной надстройки VS, которая отслеживает сгенерированный код и автоматически переименовывает его, нет никакого способа выполнить то, что вы хотите.

3
ответ дан 5 December 2019 в 10:02
поделиться

Этот ответ может быть неудовлетворительным, но это лучшее, что я могу предложить.

Я не думаю, что вы можете заставить Visual Studio Designer автоматически добавлять подчеркивание. Однако, что вы можете сделать, так это сделать процесс добавления подчеркивания менее болезненным. Просто создайте сначала объекты без подчеркивания; затем используйте функцию Refactor для их переименования. Просто поместите курсор на имя поля (label1, в вашем случае) и нажмите F2 (или щелкните правой кнопкой мыши ⇒ Refactor ⇒ Rename). Это работает независимо от того, где в коде вы находитесь, все, что вам нужно - это упоминание label1. Поскольку вы, вероятно, будете писать код, использующий ваши элементы управления, вы, вероятно, будете ссылаться на поля в любом случае. Вы также можете нажать F12, чтобы перейти прямо к декларациям, где вы получите полный список всех ваших элементов управления; вы можете легко использовать F2, чтобы переименовать множество из них одним махом.

Кстати, я также использую F2 для переименования большинства автоматически генерируемых имен обработчиков событий. Например, мне неприятно видеть названия методов типа btnZoomIn_Click(). Я предпочитаю называть метод zoomIn(), потому что именно это он и делает. Вместо Mainform_KeyPress() я мог бы назвать его processKeyPress().

1
ответ дан 5 December 2019 в 10:02
поделиться

Лично я считаю, что автоматически сгенерированный код следует исключить из любых руководств по кодированию и так далее. Их можно безопасно игнорировать в большинстве сценариев, если только генератор не содержит ошибки.

Пожалуйста, обсудите с тем, кто написал это руководство по кодированию, и попросите его исключить сгенерированный код.

11
ответ дан 5 December 2019 в 10:02
поделиться

Resharper может обеспечить соблюдение соглашений об именах . Затем просто откройте файл .designer и несколько раз нажмите alt + enter и введите Enter.

0
ответ дан 5 December 2019 в 10:02
поделиться

Вы можете установить GenerateMember на false.
Это не решит вашу проблему, но позволит избежать неправильного именования, когда вам придется работать с контролом вручную.

0
ответ дан 5 December 2019 в 10:02
поделиться

Как сказал BlueRaja, вы можете использовать Resharper. Затем вы можете использовать его очистку кода (Ctrl-E, C), однако это не работает с сгенерированными файлами, поэтому вам придется временно переименовать его. Я не на работе, поэтому не могу проверить, есть ли где-нибудь возможность включить эту опцию для сгенерированных файлов.

Обратите внимание, что вам придется запускать это повторно каждый раз при регенерации файла.

0
ответ дан 5 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: