winforms 创建一个循环遍历文本框和标签的类,使它们在winform中可见

yjghlzjz  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(166)

我对c#和visual studio非常陌生。
我正在Visual Studio中使用C#。我想创建一个方法,该方法可以遍历许多文本框和标签,并将它们的可见控件设置为“True”。
这是我到目前为止想出的代码,但它不起作用。

public static void showFields(params string[] values)
{
    foreach (var value in values)
    {
        value.Visible = true;
    }

}

如有任何帮助,我们将不胜感激。

oknrviil

oknrviil1#

你走的路是对的,只需要用Control替换string,顺便说一下,string不具有Visible属性。

public static void showFields(params Control[] values)
{
      foreach (var value in values)
      {
        value.Visible = true;
      }
}
lsmepo6l

lsmepo6l2#

代码应该与下面类似。您可能有嵌套的控件。在这种情况下,您将创建一个递归方法

private void MakeThemVisible(Control topControl)
{
    foreach (var c in topControl.Controls)
    {

        if (c is TextBox txt && <your second criteria>) // <-- pattern matching
        {
            // <---- txt specific code here -------
            txt.Visible = true;
            continue;
        }
        else if (c is Label lbl && <your second criteria>) // <-- pattern matching
        {
            // <---- lbl specific code here -------
            
            lbl.Visible = true;
            continue;
        }
    
        MakeThemVisible(c);
    }
}

您的表单也是control
如果您已经有了一个所需控件的列表,格式为数组-Control[] values,则可以使用LINQ

values.ToList().ForEach(c => {c.Visible = true;});

相关问题