-2

こんにちは、現在、私は MDI アプリケーションに取り組んでいます。このアプリケーションでは、私のメイン フォームは MDI 親フォームです。子フォームのすべての機能が完了すると、メッセージボックスが表示され、メッセージボックスの[OK]をクリックすると、子フォームが閉じてメインフォームに移動する必要があります。子フォームはしかし、何が起こっているのかは、親フォームの新しいインスタンスを作成しているメインフォームに到達するためです.2つのメインフォームが開いています。ここにコードがあります助けてください。

private void btnsave_Click_1(object sender, EventArgs e)
{
    DialogResult dialogResult = 
        MessageBox.Show("record saved", "requisition", MessageBoxButtons.OK, MessageBoxIcon.Information);
    if (dialogResult == DialogResult.OK)
    {

        //frmmain main = new frmmain();
        //main.Show();
        this.Close();
    }
    else
        MessageBox.Show("error", "requisition", MessageBoxButtons.OK, MessageBoxIcon.Error);
    conn.Close();
}
4

1 に答える 1

0

あなたがしたいことはMainForm

using (MdiChildForm form = new MdiChildForm())
{
    form.Showdialog();
}

MdiChildFormOKボタンがクリックされた後に閉じるにはMessageBox、いくつかのイベントハンドラーで

DialogResult dlgRes = MessageBox.Show("record saved", "requisition", 
    MessageBoxButtons.OK, MessageBoxIcon.Information);
if (dlgRes == DialogResult.OK)
    this.Close();

これにより、制御が に戻りMainFormます。それはそれと同じくらい簡単です。2 つの s を取得している場合はMainForm、私たちに伝えていないことがあります。が非表示になっている場合MainForm、つまりあるmainForm.Hide();時点で非表示になっている場合は、 を閉じる前に をMdiChild実行しますthis.MdiParent.Show();

これが役立つことを願っています。

于 2013-06-13T09:06:01.117 に答える