【问题标题】:.NET Referencing similar controls.NET 引用类似控件
【发布时间】:2010-02-01 09:53:32
【问题描述】:

我的应用程序中有多个工具条控件,并且正在寻找一种方法来一次将它们全部隐藏。

例如

allToolStrips.Visible = false;

而不是

toolstrip1.Visible = false;
toolstrip2.Visible = false;
...
toolstripn.Visible = false;

如果重要的话,我会使用 C#。

【问题讨论】:

    标签: c# .net controls toolstrip


    【解决方案1】:

    简单的一个

    foreach(Control ctrl in this.Controls)
    {           
             if(ctrl.GetType() ==typeof(ToolStrip))
    
             ctrl.Visible=false;    
    
    }
    

    【讨论】:

      【解决方案2】:

      将它们放在一个向量中,然后将它们隐藏在一个 for each 循环中?

      【讨论】:

        【解决方案3】:

        您可以使用 linq 来完成。像这样。

        this.Controls.Select(c => c is ToolStrip).ToList().ForEach(ts => ts.Visible = false);
        

        语法我没查,不过我觉得没问题。

        【讨论】:

        • 我不太擅长 LINQ,但是这个 .ToList().ForEach() 看起来有点尴尬,我有更好的方法来更改枚举中所有项目的属性。
        【解决方案4】:

        除了其他人的答案之外,请考虑对其进行编码,以便在切换控件时也可以使用相同的代码将控件再次翻转为可见,这样您就不会重复代码:

        void SetMenusVisibility(bool visible)
        {
            //credit to Vivek for his loop
            foreach(Control ctrl in this.Controls)
            {           
                     if(ctrl.GetType() ==typeof(ToolStrip))
        
                     ctrl.Visible=visible;    
        
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-26
          • 2018-04-19
          • 1970-01-01
          • 1970-01-01
          • 2012-08-10
          • 2010-09-18
          • 1970-01-01
          相关资源
          最近更新 更多