我已經在一個窗體上創建了一個按鈕,我在其中以編程方式設置了返回值,如下所示。首先,是事件處理程序psudocode,然後是對話結果返回的位置。對話框結果設置返回值
有一個默認屬性,可以在用戶界面中設置按鈕的返回行爲,即對話框結果行爲。在我的完整代碼中,我無法看到任何設置或修改此按鈕的返回值。
第一次在代碼執行過程中使用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
}
}
}
在執行OnClick之前,按鈕DialogResult被複制到form.DialogResult之後。在結束表格之前改變它是晚了。嘗試設置form.DialogResult而不是button.DialogResult。 – Ralf