Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从MDI中的另一个子窗体打开子窗体?_C#_.net - Fatal编程技术网

C# 如何从MDI中的另一个子窗体打开子窗体?

C# 如何从MDI中的另一个子窗体打开子窗体?,c#,.net,C#,.net,我有一个MDI表单和两个子表单 我想要的是,当我点击MDI中的菜单按钮时,它应该打开登录表单,当登录完成时,从登录表单,点击按钮时,我想要关闭登录表单并打开第二个子表单 这是我正在尝试的代码,但它不会在MDI内部打开,而是在外部打开。请帮忙 this.Close(); frmAdmin frm = new frmAdmin(); frm.MdiParent = this.ParentForm; frm.Dock = DockStyle.Fill; frm.Show(); 重写代码如下 frm

我有一个MDI表单和两个子表单 我想要的是,当我点击MDI中的菜单按钮时,它应该打开登录表单,当登录完成时,从登录表单,点击按钮时,我想要关闭登录表单并打开第二个子表单 这是我正在尝试的代码,但它不会在MDI内部打开,而是在外部打开。请帮忙

this.Close();
frmAdmin frm = new frmAdmin();
frm.MdiParent = this.ParentForm;
frm.Dock = DockStyle.Fill;
 frm.Show();

重写代码如下

frmAdmin frm = new frmAdmin();
frm.MdiParent = this.ParentForm;
this.close();
frm.Dock = DockStyle.Fill;
 frm.Show();

不要从
Login
form调用第二个表单。以模式对话框的形式打开
登录
表单,并将登录结果返回到父表单,父表单将根据登录结果“做出决定”,并打开第二个表单

// Login function in main form
using (var login = new LoginForm())
{
    if (login.ShowDialog() == DialogResult.Ok)
    {
        var admin = new AdminForm
        {
            MdiParent = this;
            Dock = DockStyle.Fill;
        }

        admin.Show();
    }
    else
    {
        // do something when login fails
    }
}
使用上述方法,您的
登录
表单将只对登录用户负责