[Версия Visual Studio 17.8.3 — Сообщество 2022 г.]
Я довольно часто использовал Visual Studio для написания программ на VB. Сейчас я пытаюсь использовать его для написания программ на C#. (У меня также есть опыт работы с Java, поэтому кодирование не является проблемой.) У меня проблемы со взаимодействием дизайнерского кода.
Я получаю ошибку дизайнера, хотя я не думаю, что мне следует это делать. Есть ли «правильный» способ полностью удалить функцию обработчика событий, если она нежелательна?
Сценарий: (1) В Designer я добавляю в форму метку и кнопку. (2) Я случайно дважды щелкнул метку вместо кнопки при добавлении обработчика событий. (3) Я перехожу к коду и удаляю автоматически добавленный код функции Click для метки. (К которому не должно быть привязано никакого кода.) (4) Я возвращаюсь к дизайнеру, и он выдает ошибку «Design-Time». (Имя «label1_Click» не существует в текущем контексте)
Я могу использовать отмену, чтобы вернуть функцию, и ошибка исчезнет. (Тогда я застреваю в пустой функции.) Я могу удалить метку, затем удалить код, и все в порядке. (Но если я потратил некоторое время на настройку свойств метки, удалить ее из-за того, что я случайно щелкнул по ошибке, будет болезненно.)





Попробуйте следующее:
ВС 2022:
Открыть обозреватель решений
Открыть окно свойств
Откройте нужную форму в конструкторе форм (например: Form1.cs)
Удалить нужный обработчик событий (например, щелчок)
Опция 1:
Вариант 2:
Примечание. Если обработчик событий содержит код, код обработчика событий нельзя удалить из представления кода (Обозреватель решений => щелкните правой кнопкой мыши Form1.cs => Просмотреть код). Если вы уже удалили событие, как описано выше, то код обработчика события можно удалить вручную.
Необязательно: убедитесь, что подписка на событие удалена.
Примечание. Код в <имя формы>.Designer.cs (почти) никогда не следует изменять вручную и уж точно не без резервной копии своего решения.
Немного более простой метод, который я использую всякий раз, когда со мной такое случается. Это будет работать во всех версиях, на которые вы ссылаетесь в своем вопросе: после удаления автоматически добавленного кода посмотрите окно списка ошибок (я считаю, что оно открывается по умолчанию, обычно в нижней части окна кода). Он будет ссылаться на отсутствующее определение события. Просто дважды щелкните строку описания, и вы сразу перейдете к ошибочной строке кода в дизайнере. Удалите строку, и ошибка времени разработки исчезнет.
Возможность вернуться к дизайнеру, выбрать элемент, перейти к свойствам и удалить обработчик событий работает. Это немного неинтуитивно или, по крайней мере, отличается от того, что мне удавалось сделать в VS в Visual Basic. VB позволял программисту просто удалить подпрограмму, не нарушая при этом графический интерфейс. Ах хорошо. Новые привычки, которым стоит научиться. Спасибо!