在我的主窗体中隐藏标签页时出现问题

本文关键字:问题 标签 隐藏 我的 窗体 | 更新日期: 2023-09-27 18:34:57

我正在努力为我的主窗体使用一个简单的显示/隐藏功能。我需要通过不同的许可证工作,其中:

  1. 如果我启动我的应用程序并且没有人登录,标签页应该消失,
  2. 在有人登录的那一刻,应该显示带有各自许可证的选项卡。

在这个线程中找到了一个答案,我试图应用它,但似乎我错过了一些东西。

我的函数代码如下

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。

    公共枚举配置文件 { 访客 = 0, 管理员 = 1, 编辑器 = 2 };

  • 您看到的函数在我的主窗体的启动代码中被调用。

  • 此函数位于我用于根据应用程序要求管理许可证的主窗体之外的类中。
  • 我已经更改了主窗体内所有组件中的修饰符,以便我可以在窗体的主代码类之外使用它们。

在我的主窗体中隐藏标签页时出现问题

编辑:感谢@KingKing的评论,我在另一个线程中找到了另一个选项,并对其进行了如下调整:

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 中显示该选项卡