Я создал кнопку на форме, для которой я задал возвращаемое значение программно, как показано ниже. Во-первых, это psdocode обработчика событий, за которым следует результат возврата диалогового окна.Диалог Результат Установить возвращаемое значение
Существует свойство по умолчанию, в котором можно установить поведение возврата кнопки в пользовательском интерфейсе, то есть поведение диалогового окна. В моем полном коде я не вижу нигде, что эта кнопка возвращается или изменена.
При тестировании (работает в режиме отладки) при первом использовании обработчика события buttonSaveSet_Click во время выполнения кода возвращаемое значение результата диалогового окна является «Отмена», несмотря на то, что я нажал кнопку «Установить». Однако во второй раз, когда я выполняю функцию, нажав ту же кнопку, результат диалога возвращается как «Да».
Похоже, есть другое место, в котором изменяется диалоговое окно, и я устанавливаю это значение в неправильном месте.
psudo code
private void buttonSaveSet_Click(object sender , EventArgs e)
{
setChars = new setChars();
//set the dr to yes.
buttonSaveSet.DialogResult = DialogResult.Yes;
// set the charCount
// set the rowCount
if (conditional statement is true)
{
//return values;
}
else
{
//return nothing;
}
Close();
}
Расположение возвращаемой:
try
{
DialogResult dResult = setValPopup.ShowDialog();
SetChars sc = setValPopup.setChars;
int max;
if (dResult == DialogResult.Yes)
{
if (sc.set == true)
{
//do other work
}
}
}
Кнопки DialogResult копируются в форму.DialogResult до того, как OnClick выполняется не после. Изменение его в событии перед закрытием формы происходит в конце. Попробуйте установить форму.DialogResult не button.DialogResult. – Ralf