【问题标题】:C#, Select by tagC#,按标签选择
【发布时间】:2011-12-04 02:15:26
【问题描述】:

我是 C# 新手,我想将共享相同标签的所有面板设置为 visible=false。这将阻止我在激活新面板时单独调用每个面板名称并将其设置为 false。

有什么帮助吗?

这就是我以前的做法:

private void button3click (object sender, EventArgs e)
{
 Panel1.Visible = false;
 Panel2.Visible = false
 Panel3.Visible = true;
}

【问题讨论】:

  • 我假设您使用的是 Windows 窗体? Windows 窗体控件没有 VB6 中的控件那样的标签。
  • 嗨,约翰,我正在使用 Microsoft Visual c# Express 2010。我不确定他们的标记系统是做什么用的,但我希望它可以作为一个可选的。下面是我设置标签参数screencast.com/t/TwjTU1E6RYcy的区域截图
  • 我以为他们已经摆脱了标签,但我想保留它们是为了向后兼容。我仍然不明白这些对你有什么帮助。不可能很容易地找到具有给定标签的所有控件。最好只使用每个控件。它也会让你的代码更简洁。

标签: winforms


【解决方案1】:

如果您有一组经常被称为组的控件,那么您可以尝试将这些控件放入一个列表中:

List<Control> typeAControls = new List<Control>(){control1, control2};
List<Control> typeBControls = new List<Control>(){control3, control4};

foreach (var toHide in typeAControls)
{
    toHide.Visible = false;
}

foreach (var toHide in typeBControls)
{
    toHide.Visible = true;
}

【讨论】:

  • 嗯,好用!设置控件时,我可以设置全局控件还是必须在每个函数中定义它们?我还在学习如何操作命名空间和类。另外,新控件列表中的控件是我面板的 AccessibleNames 吗?
  • 不,那些是引用控件本身的类成员。我想我可能会建议你不要走得太远。像这样的技术只是偶尔使用。要查看我使用的这些名称,请单击“Panel1.Visible=false;”中的“Panel1”一词然后右键单击并选择“转到定义”。
猜你喜欢
  • 2012-08-14
  • 2022-07-08
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 2011-07-09
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多