按钮标签属性

本文关键字:属性 标签 按钮 | 更新日期: 2023-09-27 18:11:59

foreach (Control c in this.Controls)
{
   if (c is Button)
   {
      Button b = (Button)c;
      if (b.Tag.Equals("submit") && b.Tag.Equals("save"))
      {
         b.Visible = false;
      }
   }
}

我试图隐藏这些标签属性按钮其他将显示在表单加载这是我的代码,它不工作。但错误显示"对象引用未设置............"

按钮标签属性

问题1:您是否实际将Tag设置为任何内容?
问题2:为什么使用Tag而不是按钮实例本身?
问题3:Tag如何同时是一个值和另一个值?

关于问题2):你可以这样做

if (c == btnSubmit) { ... }
if (c == btnSave) { ... }

假设您在属性中命名了两个按钮。这也是我推荐的解决方案!

关于问题3:你的代码应该(可能)读作
if (b.Tag.ToString().Equals("submit") || b.Tag.ToString().Equals("save"))
{
   b.Visible = false;
}

让我吃惊的是,你的整个代码可以重构如下,假设按钮被相应地命名:

btnSubmit.Visible = false;
btnSave.Visible = false;

No loop, No nothing!默认情况下,窗体上的每个控件在类中也有一个实例成员(除非您在控件的属性中配置它)。那么,为什么要循环遍历表单上的所有控件(顺便说一句,如果按钮在Panel内,甚至不能工作),只是为了找到两个按钮,当您可以"按其名称调用它们"时隐藏在首位?