禁用下一个表单中的按钮

时间:2014-03-30 05:56:15

标签: c# winforms

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

3 个答案:

答案 0 :(得分:1)

您可以在show命令中传递对用户角色的引用,如此

form2.Show(IsAdmin);

然后在form2的构造函数中接受它:

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

您可能还想查看有关引用另一个表单主题的this更长时间的讨论。

答案 1 :(得分:1)

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

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

    private bool isAdmin;

    public bool IsAdmin
    {
        get
        {
            return isAdmin;
        }

        set
        {
            isAdmin = value;
            btnAdmin.Enabled = isAdmin;
        }
    }

并在显示form2之前在表单1中使用它。 对于管理员:

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

对于普通用户:

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

希望它有所帮助。

答案 2 :(得分:0)

当您从form1以管理员身份登录时,请打开form2并关闭form1。 拿一面旗帜。

flag=0;
If (username==admin && password=="Your Password")
form2.show()
this.close()
flag=1;
End If

现在在form2中检查flag的值。如果为1,则以管理员身份登录,以用户身份登录。 所以,

If form1.flag=1 then
admin_button.enabled=true
user_button.enabled=true
else
admin_button.enabled=false
user_button.enabled=true
End If