【问题标题】:Problems hiding a TabPage in my Main Form在我的主窗体中隐藏 TabPage 的问题
【发布时间】:2013-10-19 07:55:01
【问题描述】:

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

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

我在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。

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

  • 你看到的函数是在我的主窗体的起始代码中调用的。

  • 此功能与我用于根据我的应用程序要求管理许可证的主窗体不同的类中。
  • 我已更改主窗体内所有组件中的修饰符,因此我可以在窗体的主代码类之外使用它们。

【问题讨论】:

  • 在此处分享该图像....并调试代码....
  • 在时间间隔内使用线程概念..并使用线程调用函数。
  • @AravindSrinivas 你指的是主要形式吗?代码已调试,运行良好,但程序没有按预期隐藏我的 tabPage。
  • @MarialvyMartínez profile 的类型是什么?显示它的定义
  • @KingKing 我编辑了我的问题,但我认为你没有阅读完整的代码描述......我说配置文件是一个枚举;)

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


【解决方案1】:

编辑:感谢@KingKing 的cmets,我在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 中显示选项卡

【讨论】:

  • 当我们想要保持顺序 TabPage。您可能还想查看方法 Insert 而不是 Add 以在指定索引处显示标签页。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
相关资源
最近更新 更多