我有一个定制的对话框winform。在它上面我有一个标签、文本框和 2 个按钮(确定和取消)。它还声明和定义了用于传递不同参数列表的重载执行方法。
Dialog Winform 调用如下:
var theDialog := new InputMsgBox;
if theInputB.Execute('Awesome StackOverflow','Enter Text?',s,var s) = DialogResult.OK then
begin
Invalidate;
SetText(s);
end;
Dialog Winform execute 定义如下:
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;
当execute方法返回给调用者时,它总是返回DialogResult.Cancel,即使你点击OKBtn。
Buttons 的 dialogresult 相应设置。
我在对话框 winform 上设置了 AcceptButton 和 CancelButton。
我不明白为什么 showdialog 方法总是返回 DialogResult.Cancel。
更新在做了一些测试后,我发现我的另一个自定义对话框窗口在通过调用 showdialog = DialogResult.Ok 显示时工作正常。所以,我检查了他们两个,看看他们的属性设置是否有一些差异,绝对没有差异。我不明白。提前致谢,