Button[] button = new Button[10]
for(int i =0;i<10;i++)
{
    
    button[i].text = "";
}

解决方案 »

  1.   

    可是我的Button已经放在窗体上了
      

  2.   

    声明一个ArrList,将窗体上的Button保存在这里,要用的时候((Button)Arr[i]).Text=""
      

  3.   

    可是我的Button已经放在窗体上了
      --->和这这个问题没有关系
     你可以用一个数组,或者是一个arraylist来管理你的这些个button
      

  4.   

    ArrayList arrayList = new ArrayList();
    arrayList.Add(this.button1);
    ((Button)Arr[i]).Text=""
      

  5.   

    brightheroes:
    这不失为一个好办法,TKS!
    有没有一个转换函数像FOXPRO那样用一个符号&"button1"就可以把它转换为一个控件实例了?
      

  6.   

    你可以试试用button的父控件(这里应该是form吧)的finkControl方法试试,我没用过这个方法,看名字似乎可以用一下,你试试吧。
      

  7.   

    写个公共函数吧,如下:
    public static Button GetButton(string pButtonName,Form pForm)
    {
        foreach (Control c in pForm.Controls)
        {
            if (c.Name=pButtonName && c is Button)
                return (Button)c;
        }
    }
    在窗体中调用:
        for(int i=1;i<=10;i++)
        {
            GetButton("Button"+i.ToString(),this).Text="XXXX";  
        }
      

  8.   

    我记得好像有个什么函数可以实现类似这样的功能:???("textBox"+1)   对应于某个控件实例,哪位老大记得啊?我也需要完成这样的功能!!!
      

  9.   

    在Web下面,FindControl确实是最佳的方法;在Windows下,gsuner(forever)的方式也可行;如果这些Button是本身这个对象的某些字段,也可以用下面这种方式:
    Type t = this.GetType();
    for (int i = 1; i <= 10; i++) {
       FieldInfo fi = t.GetField("Button"+i,
                BindingFlags.Instance|BindingFlags.NonPublic|BindingFlags.Public);
       if (fi != null) {
          Button btn = (Button) fi.GetValue(this);
          btn.Text = "value";
       }
    }不过上面这些方法都发时间,最好还是直接写:
    Button1.Text = ...;
    Button2.Text = ...;
    ......
      

  10.   

    但是我问的是Window桌面程序啊!!!???
      

  11.   

    樓上是想先取的實例﹐才設置Text的值?可以在Button的tag設置一些值﹐﹐通過循環取得實例
    for(control ctr in this.controls)
    {
       if (ctr.tag= && ctr is Button))ctr.Text="";
    }