Почему ShowDialog всегда возвращает DialogResult.Cancel?

У меня есть настраиваемая диалоговая форма winform. На нем у меня есть метка, текстовое поле и 2 кнопки (ОК и Отмена). Он также объявляет и определяет перегруженные методы execute для передачи различных списков параметров.

Dialog Winform вызывается следующим образом:

var theDialog := new InputMsgBox;

if theInputB.Execute('Awesome StackOverflow','Enter Text?',s,var s) = DialogResult.OK then
begin
  Invalidate;
  SetText(s);
end;

Выполнение диалогового окна Winform определяется следующим образом:

method InputMsgBox.Execute(Title, theMessage, defaultanswer:string;var thevalue:string): DialogResult;
begin
    result := DialogResult.Cancel;

    Requesttext.Text:=themessage;
    Requesttext.Enabled:=true;
    Requesttext.Visible:=true;
    InputTextBox.Text:=defaultanswer;
    InputTextBox.Enabled:=true;
    InputTextBox.Visible:=true;

    CancelBtn.Enabled:=true;
    CancelBtn.Visible:=true;
    Okbtn.Enabled:=true;
    Okbtn.Visible:=true;

    self.ShowDialog;
    Result := self.DialogResult;
    thevalue:=InputTextBox.Text;
end;

Когда метод выполнения возвращается обратно вызывающей стороне, он всегда возвращает DialogResult.Cancel, даже когда вы нажимаете OKBtn.

Результат диалога кнопок устанавливается соответствующим образом.

Я установил кнопки AcceptButton и CancelButton в диалоговом окне winform.

Я не могу понять, почему метод showdialog всегда возвращает DialogResult.Cancel.

ОБНОВЛЕНИЕ Проведя несколько тестов, я обнаружил, что другое мое настраиваемое диалоговое окно отлично работает при отображении путем вызова showdialog = DialogResult.Ok. Итак, я проверил их обоих, чтобы увидеть, есть ли какие-то различия в настройках их свойств, и нет абсолютно никакой разницы. Я этого не понимаю. Заранее спасибо,

6
задан ThN 2 November 2011 в 13:52
поделиться