Как мне получить System.Windows.ShowDialog() возвращает 'true'?

StackOverflow https://stackoverflow.com/questions/505572

  •  21-08-2019
  •  | 
  •  

Вопрос

Как мне получить System.Windows.ShowDialog() чтобы вернуть 'true'?

Я немного новичок в этом. System.Windows.ShowDialogвозвращаемый тип является bool?Предполагается, что он вернется true когда ты ударяешь Submit, и false когда ты ударяешь Cancel.Но я не уверен, как определить, какой Button это официальная кнопка отправки.

Редактировать:В связи с этим, мне любопытно, как он может возвращать null .

Это было полезно?

Решение

http://msdn.microsoft.com/en-us/library/system.windows.window .показать каталог.aspx

ShowDialog возвращает значение , равное нулю<(Из <(T>)>) Логическое значение, указывающее, было ли действие принято или отменено.Возвращаемым значением является значение свойства DialogResult перед закрытием окна (см. DialogResult).

По сути, вы решаете, устанавливая значение DialogResult, а не нажимая определенную кнопку - вы решаете, что делает кнопка.

Другие советы

В WPF установите Кнопка.Значение по умолчанию присвоите свойству значение true, чтобы указать, что кнопка является кнопкой "отправить" для окна.Я не уверен на 100%, что это приведет к закрытию окна с диалоговым результатом true.Если это не так, вам просто нужно обработать событие Click таким образом:

this.DialogResult = true;

Редактировать

Аналогично, вы можете использовать Кнопка.Выполняется отмена свойство, чтобы кнопка была кнопкой "отмена" для формы.

Правка 2

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

если вы установите DialogResult в значение true, ShowDialog вернет true, если вы установите DialogResult в значение false, ShowDialog вернет false, если диалоговое окно закрыто без установки DialogResult (пользователь нажимает на красный крестик в правом верхнем углу), ShowDialog вернет null.

Установка значения IsDefault в значение true приведет к тому, что кнопка будет выглядеть немного по-другому, и нажатие enter "щелкнет" по этой кнопке.

Если вы установите для IsCancel значение true, нажатие esc "щелкнет" по этой кнопке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top