Это ошибка и объясняется здесь:
Случай исчезновения исключения OnLoad - исключения обратного вызова пользовательского режима в x64
http://blog.paulbetts.org/index.php/2010/07/20/the-case-of-the-disappearing-onload-exception-user-mode-callback-exceptions-in-x64/
VS ответ команды:
Отсюда: https://connect.microsoft.com/VisualStudio/feedback/details/357311/silent-exceptions-on-x64-development-machines
Опубликовано Microsoft @ 22.04.2010 17:12
Здравствуйте,
Эта ошибка была закрыта как «Внешняя», потому что это поведение связано с тем, как x64-версия Windows обрабатывает исключения. Когда исключение пользовательского режима пересекает переход ядра, 64-разрядные версии Windows не позволяют распространению исключения. Поэтому подключенные отладчики не знают о том, что возникла исключительная ситуация, в результате которой отладчику не удалось сломать необработанное исключение.
К сожалению, когда команда Visual Studio ничего не может сделать для решения этой проблемы, это результат проектирования операционной системы. Все отзывы по этой проблеме следует адресовать команде Windows; однако команда Windows считает это «правильным» дизайном операционной системы и считает поведение x86 «неправильным».
С наилучшими пожеланиями,
Visual Studio Debugger
Решение, которое я использую:
Я поместил код, который был внутри загрузки формы в конструктор, и я проверяю, запущено ли приложение в конструкторе или нет
protected static bool IsInDesigner
{
get { return (Assembly.GetEntryAssembly() == null); }
}
if (!MainForm.IsInDesigner)
LoadControl();