【问题标题】:Disabling buttons in the next form禁用下一个表单中的按钮
【发布时间】:2014-03-30 05:56:14
【问题描述】:

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

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

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

    form2.Show(IsAdmin);
    

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

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

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

    【讨论】:

      【解决方案2】:

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

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

          private bool isAdmin;
      
          public bool IsAdmin
          {
              get
              {
                  return isAdmin;
              }
      
              set
              {
                  isAdmin = value;
                  btnAdmin.Enabled = isAdmin;
              }
          }
      

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

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

      对于普通用户:

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

      希望对你有帮助。

      【讨论】:

        【解决方案3】:

        当您从 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
        

        【讨论】:

        • 嗨 - 这是一个解决方案,还是只是试图找出错误所在?如果它是一个解决方案 - 你能多解释一下这是如何解决问题的吗?
        猜你喜欢
        • 1970-01-01
        • 2012-05-21
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 2014-06-17
        • 2022-01-15
        相关资源
        最近更新 更多