Некоторые события формы (Load, Shown) перестали работать - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть проект с несколькими формами.После некоторых изменений в наборе данных проекта событие Load для одной формы перестало работать (хотя форма отображается правильно).Не было никаких изменений в самой форме.В качестве быстрого обходного пути я создал обработчик Shown (через VS IDE) и поместил туда свой код, но он также не запускается (я создал тестовые окна сообщений, чтобы убедиться, что это не проблема с отладчиком).

С другой стороны, многие события работают, например, я пробовал Активировать, и это работает, но для меня это бесполезно.

В .Designer.cs есть соответствующая строка:

 this.Load += new System.EventHandler(this.FormZlecenie_Load);

Я сравнил три файла, связанных с этой формой (.cs, .resx, .Designer.cs), с резервной копией, которую я сделал до внесения изменений в набор данных, и различий практически нет (и резервное копирование работает без проблем),

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

Я также удалил все двоичные папки (bin, obj), но безуспешно.

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

Так где еще мне искать?У меня нет идей.

Ответы [ 3 ]

1 голос
/ 14 октября 2014

Посмотрите на привязки в вашем коде. Иногда события опускаются, когда привязки неверны (то есть привязка к Thread.IsAlive - мой случай).

1 голос
/ 09 марта 2012

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

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

Далее попробуйте использовать другой метод для обработчика событий. Только тот, который автоматически генерируется при использовании «this.load + =».

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

Надеюсь, это поможет!

0 голосов
/ 20 января 2014

Проверьте вызов InitializeComponent(); в конструкторе класса форм.Форма частично все еще работает без звонка.Даже некоторые специфические для формы события вызываются.Но элементы управления в форме не будут созданы, и такие события, как this.Load, больше не будут работать.

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