Рейтинг:
4
Richard Deeming
Это не просто, но вы можете это сделать.
Если вы используете любой из конструкторов, которые принимают string
содержащее сообщение об ошибке для отображения, вы можете установить HelpLink
собственность ExceptionMessageBox
чтобы указать ссылку справки. Вы все еще можете использовать InnerException
свойство для отображения полной информации о фактическом исключении.
var message = new ExceptionMessageBox("Something went wrong...")
{
HelpLink = "https://www.google.com/",
InnerException = ex,
};
message.Show(this);
Если вы используете любой из конструкторов, которые принимают
Exception
, этот
HelpLink
на
ExceptionMessageBox
игнорируется. Вместо этого видимость кнопки справки определяется тем, есть ли какие-либо исключения в цепочке.
Свойство HelpLink[
^] набор. Похоже, что большинство исключений не имеют этого поля, поэтому кнопка "справка" редко появляется. Однако это свойство можно записать, поэтому вы можете установить его:
var error = new InvalidOperationException("Something went wrong...", ex)
{
HelpLink = "https://www.google.com/",
};
var message = new ExceptionMessageBox(error);
message.Show(this);
(Технически ссылка справки для исключения также может быть построена из элементов в свойство Data[^] - HelpLink.BaseHelpUrl
указывает базовый URL-адрес и любую запись, ключ которой начинается с HelpLink.
будет добавлено как строковое значение запроса.)
Member 12747680
Большое вам спасибо, вы сделали мой день лучше.
и я хотел бы знать, есть ли какие-либо возможности передать какой-то путь изображения вместо URL-адреса, чтобы мы могли отобразить изображение am по нажатию кнопки справки.
или настроить любую другую кнопку так, чтобы мы могли достичь чего-то подобного.
и еще один вопрос при нажатии кнопки help Как обрабатывать события, например при нажатии кнопки help или кнопки copy мы хотим написать свой собственный метод, который выполняет определенные действия, как это сделать?
Richard Deeming
Там есть OnCopyToClipboard
событие, с которым вы можете справиться, чтобы справиться с кнопкой копирования.
При нажатии кнопки справки событие не срабатывает.
Любая ссылка справки, которую вы укажете, будет запущена через Process.Start
, поэтому путь к изображению должен просто работать и будет открываться в приложении по умолчанию для данного типа файла.
Member 12747680
большое вам спасибо за быстрый ответ, я изучу "открыть в приложении по умолчанию для типа файла" и вернусь к вам.
еще раз благодарю вас .
Member 12747680
Я просто попытался найти локальный путь изображения, но для этого его не взяли. я имею в виду, что кнопка помощи для этого не видна. любое предложение.
Richard Deeming
Похоже, что код принимает только ссылки справки, которые начинаются с "http", поэтому локальные файлы не будут работать.
Member 12747680
как изменить или отключить кнопку копирования, если она не требуется.? спасибо.
Richard Deeming
Существует не вариант, чтобы сделать это. Если это требование, вам придется создать свою собственную форму.
Member 12747680
Эй, извините, у меня есть еще один вопрос для того же самого ,что они дали возможность добавить некоторые кнопки для окна сообщения, если мы нажмем на эти кнопки, как мы узнаем, что мы нажали эту кнопку, означает, как мы можем получить доступ к событию buttton click.например: button1, если мы нажмем, что какое-то событие или действие должно произойти. как я могу это сделать?
Richard Deeming
Есть очень ограниченные возможности для изменения кнопок в окне сообщения об исключении.
Вы можете указать до пяти кнопок с пользовательским текстом, каждая из которых закроет окно сообщения перед возвращением к вашему коду. Там нет события "щелчок по кнопке"; вместо этого вы ждете Show
метод возврата, а затем проверьте CustomDialogResult
свойство, чтобы увидеть, какая кнопка была нажата.
Если вам нужно что-то более сложное, то вам придется создать свою собственную форму.
Member 12747680
Большое спасибо. очень приятно видеть ваши ответы. еще раз спасибо.!
Рейтинг:
0
Afzaal Ahmad Zeeshan
Такие вопросы должны быть заданы под одной и той же статьей (или блогом, или постом с советами). Причина в том, что на этом форуме (под статьей) вопрос будет находиться в определенном контексте, и автор, ОП и будущие читатели будут знать, о чем вы говорите.
В QA вы должны объяснить контекст, и это не очень полезно — из-за флагов вне темы ваш вопрос будет потрачен впустую. Поэтому, пожалуйста, задайте вопрос на форуме под статьей, и автор будет более чем рад вам помочь, если он все еще активен.
Что же касается "не показывания", то оно когда-нибудь показывается или работает? Возможно, или кнопка может быть скрыта. :смеяться: