使用C#,即使值是false,标签也不会隐藏

问题描述

我用C#编写的医疗应用程序有一个奇怪的问题。我有一个功能,可以根据配置文件隐藏菜单的某些功能。例如,医疗助手不应该访问用户创建,等等。现在,当我尝试使用该功能甚至在表单加载中隐藏LabelTextBox的{​​{1}}时,甚至什么都没有隐藏。

下面是我的功能

Label.Visible = false;

解决方法

基于@ the-generals注释,可以通过将所有内容都设置为大写或小写来避免大写错误:

private void LoadMenu(string mySession)
{
    switch (mySession.ToUpper())
    {
        case "SECRETAIRE":
            BtnCaisse.Visible = false;
            BtnPharmacie.Visible = false;
            BtnParametrage.Visible = false;
            BtnLaboratoire.Visible = false;
            UserChildNouveau.Visible = false;
            break;

        case "ADMINISTRATEUR":
            BtnPharmacie.Visible = false;
            BtnLaboratoire.Visible = false;
            break;
    }
}

请注意,我在ToUpper()参数中使用了switch,并且case语句也是大写的。

对于调试,Visual Studio允许您单击装订线(在编辑器中的左边距)来设置断点。当您在排水沟中看到大的红点时,您会知道的。当您按F5键时,VS将在该断点处停止。然后,您可以转到自动,本地或监视窗口(或将鼠标悬停在变量上)以查看mySession的值。您也可以在遇到断点后单步执行代码:

  • F10越过
  • F11进入方法

还有更多,值得您花时间研究调试器的工作原理,因为它将节省大量时间。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...