3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
我通常在表單/對(duì)話(huà)框上創(chuàng)建一個(gè)靜態(tài)方法,我可以調(diào)用它。這將返回成功(OK按鈕)或失敗,以及需要填寫(xiě)的值。
public class ResultFromFrmMain {
public DialogResult Result { get; set; }
public string Field1 { get; set; }
}
并在表格上:
public static ResultFromFrmMain Execute() {
using (var f = new frmMain()) {
var result = new ResultFromFrmMain();
result.Result = f.ShowDialog();
if (result.Result == DialogResult.OK) {
// fill other values
}
return result;
}
}
打電話(huà)給你的表格;
public void MyEventToCallForm() {
var result = frmMain.Execute();
if (result.Result == DialogResult.OK) {
myTextBox.Text = result.Field1; // or something like that
}
}

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
發(fā)現(xiàn)這個(gè)代碼的另一個(gè)小問(wèn)題...或者至少當(dāng)我試圖實(shí)現(xiàn)它時(shí)它是有問(wèn)題的。
frmMain中的按鈕沒(méi)有返回兼容值,使用VS2010我添加了以下內(nèi)容,一切開(kāi)始正常。
public static ResultFromFrmMain Execute() {
using (var f = new frmMain()) {
f.buttonOK.DialogResult = DialogResult.OK;
f.buttonCancel.DialogResult = DialogResult.Cancel;
var result = new ResultFromFrmMain();
result.Result = f.ShowDialog();
if (result.Result == DialogResult.OK) {
// fill other values
}
return result;
}
}
添加兩個(gè)按鈕值后,對(duì)話(huà)框工作得很好!謝謝你的例子,它確實(shí)有幫助。
- 3 回答
- 0 關(guān)注
- 1763 瀏覽
添加回答
舉報(bào)