【问题标题】:How to visible label with other name in c#如何在c#中显示具有其他名称的标签
【发布时间】:2018-11-01 19:58:14
【问题描述】:

我有标签和它们的名称,如 label1、label2、... 等,我知道如何显示标签,如 label1.visible = true 但我想要做的是让它们中的一些用其他名称可见,如下面的代码

            for (i = 0; i < ceksayisi*2; i++)
            {
                num = i;
                labelname = "label" + num;
                labelname.visible = true;
            }

代码给我'string' does not contain a definition for 'visible' and no extension method 'visible' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)

【问题讨论】:

  • 这是 ASP.NET 吗?
  • 甚至 c#?....
  • 如果 ASP.NET,(Label)Page.FindControl("label" + num) 应该可以工作
  • 说明您使用的 GUI 框架很重要:ASP.NET、Windows 窗体、WPF 等。
  • 如果您使用的是 Windows 窗体,请检查:stackoverflow.com/questions/12808943/…

标签: c#


【解决方案1】:

由于这是一种区分大小写的编程语言,它不适用于labelname.visible = true;,但您必须使用以下代码更改那段代码:labelname.Visible = true;

编辑:

可能有误解,如果您尝试动态显示/隐藏您不知道名称的标签,您可以尝试执行以下操作:

for(int i = 0; i < ceksayisi*2; i++)
{
    num = i;
    Label labelname = (Label) Controls.Find("label" + num, true).FirstOrDefault();
    labelname.Visible = true;
}

希望这会有所帮助。

【讨论】:

  • 我能否很高兴知道为什么我的答案被否决了?如果你不告诉我我写错了什么,我认为我无法提高我的技能。
  • 它解决了我的问题
【解决方案2】:

你在这里犯了一个典型的错误。您正在寻找的 Droid 是数组和其他集合。你不能在一些弱类型语言之外建立这样的变量名。

没有 .NET 语言是弱类型的。这是设计使然。

【讨论】:

    【解决方案3】:

    要实现这一点,您应该在此处使用字典。

    Dictionary<string, Label> keyValuePairs = new Dictionary<string, Label>();
    

    并使用相应的键将您的标签添加到字典中

    keyValuePairs.Add("label_" + num, label1);
    

    您可以访问您的标签,例如

    Label lbl = keyValuePairs["label" + num];
    

    那你就可以玩这个lbl了

    lbl.Visible = false;
    

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多