对不起,我是一个非常基本的用户,在这个小问题上需要一些帮助。我正在实现WinForms库应用程序-连接到本地数据库,该数据库中也有现有记录。
我当前正在根据用户-用户功能权限对登录部分进行编码。我设法设置了一个管理员用户和一个默认用户,它们都可以在应用程序加载中工作。
问题出在InitializeComponent();上。 -该应用正确加载,并且用户首次使用该应用具有正确的功能权限,但是,当用户在该应用的子菜单中来回切换并返回到主菜单时,管理员将失去一些功能权限(例如,用户在首次使用应用程序时具有正确的权限,但是在进一步浏览应用程序并返回到所有功能所在的主菜单时,最终却具有与普通用户相同的功能。
我认为问题在于MainMenuForm的第二次使用(其中存在':this(“”)')
该部分的设置不正确-我希望应用程序始终保持与登录时使用的用户相同,但不是因为这个原因,这会导致错误。
到目前为止,这是我所拥有的,可能需要进行一些更改,但是我不确定确切的位置和方式。帮助将不胜感激。
namespace Library_System_Project
{
public partial class MainMenuForm : Form
{
// You can call this one at runtime.
public MainMenuForm(string Role)
{
InitializeComponent();
lblRole.Text = Role;
}
// Designer will call this one.
public MainMenuForm()
: this ("")
// Calls the first constructor.
{
}
涉及以下内容:
private void MainMenuForm_Load(object sender, EventArgs e)
{
if (((Form)this).Controls["lblRole"].Text != "jHarrington")
{
btnUserMenu.Enabled = false;
}
}
答案 0 :(得分:0)
一开始我也遇到过类似的问题,我必须定义角色/用户。
通过创建仅用于记录目的的新表单,我发现了简单的解决方案,此后,根据分配的角色,它创建了具有条件的主表单的新实例。
只需在角色之间切换,请检查以下内容:
case "eng":
MainForm MainForm2 = new MainForm();
((Control)MainForm2.tabPage1).Enabled = true;
MainForm2.LoadDataParts();
MainForm2.DataGridCount();
((Control)MainForm2.tabPage2).Enabled = false;
((Control)MainForm2.tabPage3).Enabled = false;
((Control)MainForm2.tabPage4).Enabled = false;
((Control)MainForm2.tabPage5).Enabled = false;
MainForm2.btnCB_Add.Enabled = false;
MainForm2.button10.Enabled = false;
MainForm2.btnCD_Delete.Enabled = false;
MainForm2.dataGridView5.Visible = false;
MainForm2.dataGridView7.Visible = false;
MainForm2.dataGridView1.CellDoubleClick -= new DataGridViewCellEventHandler(MainForm2.DataGridView1_CellDoubleClick);
MainForm2.Show();
break;