如何为某些用户禁用按钮?

时间:2013-03-20 07:46:51

标签: c# winforms

我在数据库中有一个表,其中包含UserName和UserRights列。 UserRights是adminuser 现在,如果用于登录login form的UserName只是用户,我想要禁用其他表单中的某些按钮。我该怎么做? 我有以下代码:

    private void button1_Click_1(object sender, EventArgs e)
    {
        connection.Open();
        OleDbDataReader reader = null;
        OleDbCommand command = new OleDbCommand("select* from TableAcct", connection);
        reader = command.ExecuteReader();
        while (reader.Read())
        {
            uname.Add(reader["username"].ToString());
            password.Add(reader["userpassword"].ToString());
            rights.Add(reader["rights"].ToString());
        }
        connection.Close();

        int totalItems = uname.Count;
        int count = 0;
        string isValidated = "";
        while (count < totalItems)
        {
            if ((Username.Text == uname[count].ToString()) && (pword.Text == password[count].ToString()))
            {
                isValidated = "True";
                rights2 = rights[count].ToString();
                count = 100;
            }
            else
            {
                count++;
            }
        }
        if (isValidated == "True")
        {
            Mainform mainform1 = new Mainform();
            login.ActiveForm.Hide();
            mainform1.linkLabel1.Text = Username.Text;
            mainform1.ShowDialog();
            Username.Clear();
            pword.Clear();

        }
        else
        {
            MessageBox.Show("Invalid Log in. Please try again", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }

2 个答案:

答案 0 :(得分:1)

在会话或任何容器中保存登录用户名。以不同的形式获取该用户名,如果可以,则应用条件然后使用

buttonname.visible = true
else
buttonname.visible = false.

如果你将使用visible属性,那么最初在html代码中将你的按钮置于visible = false模式。

或者您可以使用

buttonname.enable = true
else
buttonname.enable = false

我认为这会对你有所帮助。

答案 1 :(得分:1)

您可以将true或false传递给main-form。或者您为用户创建一个类,其中包含usermode(admin或user-enum)和用户名等。

mainform的构造函数接受user-object作为参数,在InitializeComponent()之后的构造函数中,您可以执行以下操作:

public Mainform(User user)
{
   InitializeComponent();
   if(user.UserType == UserType.User)
   {
      // Make your buttons invisible
      buttonOnlyForAdmins.Visible = false;
   }
}

除了将按钮设置为不可见外,您还可以使“管理按钮”在默认情况下不可见,并且只有在用户为管理员时才将其设置为可见。

用户可以是以下类:

public class User
{
   public string Username{get;set;}
   public UserType UserType{get;set}
}