form.dialogresultのトラブル
-
12-11-2019 - |
質問
private void mnuCustomerAdd_Click(object sender, EventArgs e)
{
CustomerForm frmCust = new CustomerForm("Add A New Customer");
int index = lstCustomers.SelectedIndex;
if (index != -1)
frmCust.CustomerData = new Customer(customerMngr.GetCustomer(index).ContactData);
MessageBox.Show("dev1");
DialogResult dr = frmCust.ShowDialog();
if (dr == DialogResult.OK)
{
MessageBox.Show("dev2");
if (frmCust.ReadInput())
{
MessageBox.Show("dev3");
customerMngr.AddCustomer(frmCust.CustomerData);
}
else
MessageBox.Show("Please supply all necessary fields with the correct information");
}
UpdateCustomerList();
}
.
ここで間違っていることを理解していません、ユーザーがfrmCust.ShowDialog()
に表示される形式でOKを越えても条件付きステートメントを実行します。
現時点では、「DEV1」にのみ取得できます。
解決
おそらくあなたのダイアログはダイアログ結果を設定していません。[OK]ボタンと[キャンセル]ボタンにDialogResult
プロパティが設定されていることを確認してください。
他のヒント
必ず正しくa salifrary/system.windows.forms.form.dialogResult.aspx" REL="nofollow"/___________________> Form
の埋め込み前のプロパティ。
そのため、ShowDilaog()
呼び出しの戻り値のように返されます。
別のオプションもありますが、AcceptButton と> CancelButton 対応するEnter
とCancel
キープレスを処理するために。
行にブレークポイント(F9)を配置します。
if (dr == DialogResult.OK)
.
ダイアログが閉じると、dr
が設定されているのか調べる機会があります。
ダイアログをreturnに戻すには、ダイアログのOKボタンに設定することができます。
void buttonOK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
Close();
}
.
またはあなたはTigran'sの答え。のオプションを実行できます。
所属していません StackOverflow