Winforms - визуально удалить событие нажатия кнопки

Уведомление о новостях .NET

Использование Visual С# 2008 Express Edition Я случайно создал событие click для кнопки. Затем я удалил автоматически созданный код метода, в результате чего появилась ошибка, указывающая, что функция, которая теперь была указана в коде загрузки формы, больше не может быть найдена.

Удаление следующей строки из функции Form1.Designer.cs InitializeComponent() <... >

this.btnCopy.Click += new System.EventHandler(this.btnCopy_Click);

... похоже, делает трюк, однако, это заставляет меня чувствовать себя очень грязным из-за следующего предупреждения в начале #региона:

/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.

Я не смог найти способ сделать это с помощью конструктора форм, который, как я полагаю, является средством, подразумеваемым этим предупреждением. Каков правильный способ сделать это?

Ответ 1

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

  • Откройте форму в дизайнере формы.
  • В дизайнере форм нажмите интересующую кнопку.
  • Нажмите F4 (или щелкните правой кнопкой мыши и выберите свойства). Появится панель свойств.
  • В верхней части панели свойств щелкните молнию. Это показывает события для кнопки.
  • Найдите событие click и очистите его обработчик.

Ответ 2

Хорошо, я обычно поддерживаю использование notepad2 или другого текстового редактора для выполнения задач кодирования.

Но, поскольку вы спрашиваете, как это сделать в конструкторе...

  • Откройте форму, в которой ошибочное событие было добавлено в элемент управления.
  • Выберите элемент управления.
  • Щелкните правой кнопкой мыши, выберите "Свойства".
  • Перейдите в "События", выбрав кнопку с помощью значка подсветки.
  • Выберите событие, которое необходимо удалить.
  • Поместив мышь в поле, в котором отображается имя метода обработчика события, удалите весь текст в этом поле и нажмите клавишу ввода. Это приведет к удалению обработчика события и назначения делегата для этого события в вашем элементе управления.

Единственное предостережение: если вы хотите сохранить метод обработчика событий (т.е. он не автогенерируется Visual Studio) - вы, вероятно, захотите избежать удаления назначения таким образом. Потому что, когда я говорю, что он удаляет обработчик событий, я должен сказать, что объявление метода обработчика события в "Form1.cs" (например) также будет удалено.