Это класс ThreadExceptionDialog, он наследуется от класса Form.Извлечение из него, чтобы изменить диалог - заброшенная причина, вы не можете легко добраться до встроенных элементов управления.Вы можете создать свой собственный производный класс Form, чтобы создать собственный диалог, просто предоставьте ему конструктор, который принимает аргумент Exception.Реализуйте обработчик событий для Application.ThreadException, чтобы отобразить его.
Обратите внимание на фундаментальный недостаток в диалоговом окне.Он ожидает, что пользователь сделает правильный выбор, когда ему нужно нажать кнопку, чтобы закрыть диалоговое окно.Имея, в общем-то, достаточно малоизвестную информацию о том, что именно пошло не так.Это что-то значит для вас, редко что-то большее, чем «о, чёрт», для пользователя.Нажатие кнопки «Продолжить», как правило, не является правильным решением.
Чтобы пользователь не мог сделать такой сложный выбор, вызовите Application.SetUnhandledExceptionMode () в методе Main (), передав ThrowException, чтобы событиеникогда не поднимаетсяКаждое необработанное исключение теперь проходит через AppDomain.UnhandledException.Включая те, которые были созданы в рабочем потоке, исключения, которые не создают диалог.Напишите обработчик события для него и отобразите и / или зарегистрируйте значение e.ExceptionObject.ToString ().Вы сами должны выбрать способ передачи этой информации на свой рабочий стол или ИТ-персоналу пользователя, чтобы вы могли улучшить свой продукт и обеспечить стабильность своих машин.