设置了一个全局的hashtable
public Hashtable has=new Hashtable();
..........
             button1的函数
              {
              has.Add(label1.Name,label1);
     has.Add(label2.Name,label2);
              }..........
             button2的函数
             for(int y=0;y<has.Count;y++)
    {
              Label r=(Label)has["label"+y.ToString()];
  r.Text=y.ToString();
     }
...........button2的函数出现错误:
                      "未将对象引用设置到对象的实例"
如果把断点设到 Label r=(Label)has["label"+y.ToString()]:
                      查看has["label"+y.ToString()]的时候就会说"对象has没有索引器"这个问题如何解决呢????

解决方案 »

  1.   

    label2.Name是什么?有这样的属性么?
      

  2.   

    IDictionaryEnumerator kv = has.GetEnumerator();
    int y = 1;
    while (has.MoveNext())
    {
     Label r=(Label)has.Value;
     r.Text=y.ToString();
     y++;
    }
      

  3.   

    while (kv.MoveNext())
    {
     Label r=(Label)kv.Value;
     r.Text=y.ToString();
     y++;
    }
      

  4.   

    我看还是这样好了:
                 button1的函数
                  {
                  has.Add("label1",label1);
         has.Add("label2",label2);
                  }
      

  5.   

    IDictionaryEnumerator kv = has.GetEnumerator();
    int y = 1;
    while (kv.MoveNext())
    {
    Label r=(Label)kv.Value;
    r.Text=y.ToString();
    y++;
    }
    这样可以!
    最后我还想问问是什么原因导致这个不行呢? Label r=(Label)has["label"+y.ToString()]: