隐藏我的主窗体中的TabPage的问题

时间:2013-10-11 09:25:33

标签: c# winforms visual-studio-2010 tabpage

我正在努力为我的主要形式提供一个简单的显示/隐藏功能。我需要通过不同的许可证,其中:

  1. 如果我启动了我的应用并且没有人登录,则标签页应该消失,
  2. 当有人登录时,应显示带有各自许可证的标签。
  3. 我在this thread找到了答案,我试图应用它,但似乎我错过了一些东西。

    我的函数代码是后面的

    public void TabPage1Permission(frmMain formMain, profile myProfile)
    {
        if (myProfile.Equals(profile.Visitor))
        {
            formMain.tabPage1.Enabled = false;
            formMain.tabPage1.Visible = false;
        }
        else
        {
            formMain.tabPage1.Enabled = true;
            formMain.tabPage1.Visible = true;
        }
    }
    

    在此代码中:

    • profile是一个包含三个值的枚举,其中只有值“visitor”没有看到TabPage1的许可。

      public enum profile {Visitor = 0,Administrator = 1,Editor = 2};

    • 您看到的函数在我的主窗体的开始代码中调用。

    • 此功能属于一个类别,除了我用来管理许可证的主要表格时,根据我的应用程序的要求。
    • 我更改了主窗体中所有组件的修饰符,因此我可以在窗体的主代码类中使用它们。

1 个答案:

答案 0 :(得分:1)

编辑:感谢@KingKing的评论,我在this other thread找到了另一个选项,我按照以下方式进行了调整:

public void TabPage1Permission(frmMain formMain, profile myProfile, int index)
{
    if (myProfile.Equals(profile.Visitor))
    {
        formMain.tabControl.TabPages.Remove(formMain.TabPage1);
    }
    else
    {
        formMain.tabControl.TabPages.Insert(index, formMain.TabPage1);
    }
}

这样我检查用户是否是访客,然后我在主TabControl中显示标签