C# c如何根据角色使选项卡页仅对某些用户可见

C# c如何根据角色使选项卡页仅对某些用户可见,c#,C#,我很久以前就这样做了。问题是没有可见的属性,并且启用的属性没有执行您希望执行的操作 我是这样做的: private void tabPage3_Click(object sender, EventArgs e) { ((Control)this.tabPage3).Enabled = false; } private void tabPage4_Click(object sender, EventArgs e) { if (GloballsClass.Role == "stude

我很久以前就这样做了。问题是没有可见的属性,并且启用的属性没有执行您希望执行的操作

我是这样做的:

private void tabPage3_Click(object sender, EventArgs e)
{
    ((Control)this.tabPage3).Enabled = false;
}

private void tabPage4_Click(object sender, EventArgs e)
{
   if (GloballsClass.Role == "student")
   {
       ((Control)this.tabPage4).Visible = false;
       this.tabPage4.Hide();
    }
}

private void tabPage1_Click(object sender, EventArgs e)
{
    if (GloballsClass.Role == "student")
    {
        tabPage1.Hide();
    }
}

private void WelcomePage_Load(object sender, EventArgs e)
{
然后您必须订阅表单的加载方法:

// Put this over the constructor
private TabPage tabPage4ToShowForNotStudents = this.tabPage4;
private TabPage tabPage1ToShowForNotStudents = this.tabPage1; 
现在,如果角色不是学生,它会将TabPage添加到TabControl中。如果是,则不会添加

请确保不要将它们添加到设计器中,否则它将无法工作


希望这有用:

谢谢大家。我已经解决了这个问题。 私有void welcome页面\加载对象发送方,事件参数e { 如果GloballsClass.Role==学生 { tabControl1.TabPages.RemovetabPage5; } 其他的 { tabControl1.TabPages.RemovetabPage4

void WelcomePage_Load(object sender, EventArgs e)
{
    if (GloballsClass.Role != "student")
    {
        yourTabControl.TabPages.Add(this.tabPage4ToShowForNotStudents);
        yourTabControl.TabPages.Add(this.tabPage1ToShowForNotStudents);
    }
}

您使用的是WinForms吗,WPF?您在这里犯的主要错误是等待他们单击选项卡将其隐藏,您应该在窗体的加载事件中执行类似的检查
        }
    }