C# 在下一个表单中禁用按钮

C# 在下一个表单中禁用按钮,c#,winforms,C#,Winforms,我的项目中有form1和form2。form1是登录页面,登录后进入form2。我还为form1创建了一个数据库表,其中包含用户名和密码,admin和user作为两个实体和相关记录。其中form2包含2个按钮admin和users。 问题是。。当我以管理员身份登录时,我希望启用form2中的所有按钮。当以用户身份登录时,我只希望启用用户按钮并禁用管理员。 有人能帮我编码吗?您可以像这样在show命令中传递对用户角色的引用 form2.Show(IsAdmin); 然后在form2的构造函数中接

我的项目中有form1和form2。form1是登录页面,登录后进入form2。我还为form1创建了一个数据库表,其中包含用户名和密码,admin和user作为两个实体和相关记录。其中form2包含2个按钮admin和users。 问题是。。当我以管理员身份登录时,我希望启用form2中的所有按钮。当以用户身份登录时,我只希望启用用户按钮并禁用管理员。
有人能帮我编码吗?

您可以像这样在show命令中传递对用户角色的引用

form2.Show(IsAdmin);
然后在form2的构造函数中接受它:

public Form2(bool IsAdmin)
{
    InitializeComponent();
    if (IsAdmin) ... else ...
}

您可能还想看一看关于从一个表单引用另一个表单的更详细的讨论。

当您从form1以管理员身份登录时,请打开form2并关闭form1。 拿着一个可以用的旗子

flag=0;
If (username==admin && password=="Your Password")
form2.show()
this.close()
flag=1;
End If
现在在form2中检查flag的值。如果是1,则以管理员身份登录,否则以用户身份登录。 所以

如上所述,form2构造函数中的flag参数应该运行

另一种可能是在form2中创建属性:

    private bool isAdmin;

    public bool IsAdmin
    {
        get
        {
            return isAdmin;
        }

        set
        {
            isAdmin = value;
            btnAdmin.Enabled = isAdmin;
        }
    }
在展示表格2之前,在表格1中使用它。 对于管理员:

    var f = new Form2 { IsAdmin = true };
    f.Show();
对于普通用户:

    var f = new Form2 { IsAdmin = false };
    f.Show();

希望有帮助。

Hi-这是一个解决方案,还是只是试图找出错误所在?如果这是一个解决方案,你能再解释一下这是如何解决问题的吗?
    var f = new Form2 { IsAdmin = false };
    f.Show();