Можно ли добавить пользовательские кнопки (или) определенные пользователем кнопки внутри окна сообщения в приложении Visual Studio Windows Forms?
Кнопки для окна сообщений в Visual Studio 2008
Ответы (3)
Вот краткое руководство по созданию пользовательского диалогового окна, что, на мой взгляд, будет идеальным решением для вас в этом сценарии.
Простой ответ: нет, это не так.
Длинный ответ заключается в том, что это невозможно с помощью управляемого API, но может возможно с помощью Win32 API. Вот хорошее руководство по использованию перехватчиков Windows для настройки диалогового окна окна сообщений операционной системы.
Класс .net MessageBox
не предлагает такой функциональности. Однако собственный API Win32 делает это через TaskDialog
API. Основное преимущество этого подхода, по сравнению с написанием собственного диалога, заключается в том, что вы будете использовать собственный системный компонент, и поэтому ваш диалог будет чувствовать себя как дома на платформе.
Очень простой пример диалогового окна задачи выглядит так:
И есть много возможностей для гораздо большей сложности, как объясняется в ссылке выше.
Вам нужно будет p/invoke для этой функции. Это одна из самых запутанных функций для вызова, поэтому ожидайте немного работы, прежде чем у вас будет работающее решение. Вы можете найти некоторый код C#, чтобы обернуть его здесь, но я не могу сказать, что я лично есть опыт в этом.