मेरे पास एक कस्टम बनाया गया संवाद Winform है। उस पर मेरे पास एक लेबल, टेक्स्टबॉक्स और 2 बटन हैं (ठीक है और रद्द करें)। यह ओवररालोड की घोषणा करता है और परिभाषित करता है विभिन्न पैरामीटर सूची पास करने के तरीकों को निष्पादित करता है।ShowDialog हमेशा DialogResult.Cancel क्यों देता है?
var theDialog := new InputMsgBox;
if theInputB.Execute('Awesome StackOverflow','Enter Text?',s,var s) = DialogResult.OK then
begin
Invalidate;
SetText(s);
end;
संवाद Winform निष्पादित पालन परिभाषित किया गया है:
संवाद 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 पर क्लिक करें।
बटन के संवाद के अनुसार सेट हैं।
मैंने संवाद Winform पर AcceptButton और CancelButton सेट किया है।
मुझे पता नहीं लगाया जा सकता है कि शोडियोलॉग विधि हमेशा डायलॉग रीसेट क्यों कर रही है। कैंसल।
अद्यतन कुछ परीक्षण करने के बाद, मुझे पता चला कि मेरी अन्य कस्टम-निर्मित संवाद विंडो शोडियलॉग = DialogResult.Ok को कॉल करके प्रदर्शित होने पर ठीक काम करती है। इसलिए, मैंने दोनों को यह देखने के लिए जांच की कि क्या उनके गुणों में कुछ अंतर हैं और बिल्कुल कोई फर्क नहीं पड़ता है। मुझे समझ में नहीं आता अग्रिम धन्यवाद,
@ जो आप इसे क्लिक करते समय डायलॉग रीसेट फॉर्म सेट करने वाले बटन में से एक नहीं है? मेरे पास OKBtn बटन (AcceptButton) DialogResult.Ok पर सेट है और CancelBtn बटन (CancelButton) DialogResult.Cancel पर सेट है। मैं एमएसडीएन पुस्तकालय के माध्यम से चला गया है और उनके उदाहरण का पालन किया है। फिर भी, यह हमेशा DialogResult.Cancel देता है। – ThN