質問

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 対応するEnterCancelキープレスを処理するために。

行にブレークポイント(F9)を配置します。

if (dr == DialogResult.OK)
.

ダイアログが閉じると、drが設定されているのか調べる機会があります。

ダイアログをreturnに戻すには、ダイアログのOKボタンに設定することができます。

void buttonOK_Click(object sender, EventArgs e)
{ 
    this.DialogResult = DialogResult.OK;
    Close();
}
.

またはあなたはTigran'sの答えのオプションを実行できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top