在我的 WinForms 应用程序中,我有 3 个表单,
当登录为“用户”时,应打开主窗体。但是在子表单中“数据输入”-“button1”应该被禁用。
当登录为“管理员”时,主表单应该打开。但是在子表单中“数据输入”-“button1”应该被启用。
我已尝试使用以下代码,但无论谁登录,button1 都可以正常工作。
请指导我如何实现这一目标:
private void btnlogin_Click(object sender, EventArgs e)
{
if(cmbusername.Text != "" && txtpassword.Text != "")
{
SqlConnection con = new SqlConnection(cs);
string query = "select * from login where username = @user and password = @pass";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@user", cmbusername.Text);
cmd.Parameters.AddWithValue("@pass", txtpassword.Text);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows == true)
{
if(cmbusername.Text == "USER")
{
FormDataEntry frmd = new FormDataEntry();
frmd.button1.Enabled = false;
}
else if(cmbusername.Text == "ADMIN")
{
FormDataEntry frmd = new FormDataEntry();
frmd.button1.Enabled = true;
}
this.Hide();
FrmMain FrmMain = new FrmMain();
FrmMain.Show();
}
else
{
MessageBox.Show("Login Failed");
}
con.Close();
}
else
{
MessageBox.Show("Please fill in both fields");
}
}
按顺序显示我的应用程序的图片
答案 0 :(得分:1)
创建一个包含登录用户类型的类:
public class User
{
public enum enumUserType
{
USER,
ADMIN
}
public static enumUserType UserType = enumUserType.USER;
}
然后,在您的 btnlogin_Click()
方法中,您可以设置该值:
if(cmbusername.Text == "USER")
{
User.UserType = User.enumUserType.USER;
}
else if(cmbusername.Text == "ADMIN")
{
User.UserType = User.enumUserType.ADMIN;
}
最后在您的“数据输入表单”的 Load()
事件中,您可以设置按钮的状态:
public partial class FormDataEntry : Form
{
public FormDataEntry()
{
InitializeComponent();
}
private void FormDataEntry_Load(object sender, EventArgs e)
{
button1.Enabled = (User.UserType == User.enumUserType.ADMIN);
}
}
您可以在应用程序的任何位置使用 User.UserType
,可能在需要知道登录用户类型的其他表单/区域中使用。
答案 1 :(得分:0)
public partial class FormDataentry: Form
{
public static bool _userrights = false;
private void FormDataentry_Load(object sender, EventArgs e)
{
if (_userrights==false)
{
btnDelete.Visible =false;
}
}
}
//frmlogin
private void btnlogin_Click(object sender, EventArgs e)
{
if(cmbusername.Text == "USER")
{
FormDataEntry._userrights=false;
}
}