Tengo un formulario de diálogo hecho a medida. En él tengo una etiqueta, un cuadro de texto y 2 botones (Aceptar y Cancelar). También declara y define sobrecargado ejecutar métodos para pasar diferentes listas de parámetros.¿Por qué ShowDialog siempre devuelve DialogResult.Cancel?
diálogo Winform se llama como sigue:
var theDialog := new InputMsgBox;
if theInputB.Execute('Awesome StackOverflow','Enter Text?',s,var s) = DialogResult.OK then
begin
Invalidate;
SetText(s);
end;
diálogo Winform execute se define de la siguiente manera:
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;
Al ejecutar el método devuelve de nuevo a la persona que llama, que siempre devuelve DialogResult.Cancel incluso cuando haces clic en OKBtn.
El resultado del cuadro de diálogo de los botones se establece en consecuencia.
He configurado AcceptButton y CancelButton en la ventana de diálogo.
No puedo entender por qué el método showdialog siempre devuelve DialogResult.Cancel.
ACTUALIZACIÓN Después de hacer algunas pruebas, descubrí que mi otra ventana de diálogo personalizada funciona bien cuando se muestra al llamar a showdialog = DialogResult.Ok. Entonces, los revisé a los dos para ver si hay algunas diferencias en la configuración de sus propiedades y no hay absolutamente ninguna diferencia. No lo entiendo Gracias de antemano,
@ Joe ¿No se supone que uno de los botones configura el formulario DialogResult al hacer clic en él? Tengo el botón OKBtn (AcceptButton) establecido en DialogResult.Ok y el botón CancelarBnn (CancelButton) establecido en DialogResult.Cancel. He pasado por la biblioteca de MSDN y he seguido su ejemplo. Aún así, siempre devuelve DialogResult.Cancel. – ThN