Winforms C#从用户控件加载时关闭MDI子项

Winforms C#从用户控件加载时关闭MDI子项,winforms,c#-4.0,mdichild,Winforms,C# 4.0,Mdichild,我试图关闭窗体加载时的MDI子项,但收到错误“创建窗口句柄时出错” 我想验证用户是否有权访问该表单,如果没有权限,请关闭该表单 if (!Functions.Contains("Access")) { var frm = ((Form)this.Parent); frm.Close(); } 在这里,我对您的问题表示怀疑:您想关闭父窗体还是mdi子窗体。您已编写代码以获取父窗体的引用,但根据您的段落,您希望关闭子窗

我试图关闭窗体加载时的MDI子项,但收到错误“创建窗口句柄时出错”

我想验证用户是否有权访问该表单,如果没有权限,请关闭该表单

if (!Functions.Contains("Access"))
{
                    var frm = ((Form)this.Parent);
                    frm.Close();
}

在这里,我对您的问题表示怀疑:您想关闭父窗体还是mdi子窗体。您已编写代码以获取父窗体的引用,但根据您的段落,您希望关闭子窗体

必须使用“显示”事件才能执行此操作。

对于父关闭示例:

 private void Form2_Shown(object sender, EventArgs e)
        {
            this.Close();

            Application.Exit();
        }
仅适用于子项关闭:

private void Form2_Shown(object sender, EventArgs e)
        {
            this.Close();

        }

在调用form.Show()之前检查访问权限问题是,我希望我的表单继承自另一个表单,该表单将包含所有安全代码,这样我就不必事先验证每个按钮的安全性