把所有的TextBox取出来放到一个数组里面,下次用的时候依次取出来

解决方案 »

  1.   

    不知道C#是否支持以前VFP那种控件的名字可以用变量来控制的.类是这样:
    ("TextBox"+i.ToString()).Txte;
    VFP可以加个@
      

  2.   

    Tag 属性的一个常见用途,是存储与控件密切关联的数据。例如,如果您有一个显示有关客户信息的控件,则可以在该控件的 Tag 属性中保存包含该客户的订购历史的 DataSet,以便可以快速地访问该数据。你的问题和tag好象没什么关系
    用控件数组也解决不了你所要的问题
      

  3.   

    你把Tag设置为对应的字段名,然后搞一个控件数组
    if (((Control)Conclu[i]).Tag != null)
    {
    dtRet.Tables[0].Rows[0][((Control)Conclu[i]).Tag.ToString()] = ((Control)Conclu[i]).Text;
    }
      

  4.   

    既然你要用到多次TextBox取值,那就应该写成一个method,将TextBox.Text统统保存在一个数组中,那样你按照数组位置来访问或者再写一个enum,将数组的index改成enum会比较直观些。数据库插入就是这么烦的,几十个正常。现在我手头上一个日本外包项目,一个form就有20多个表需要insert操作,每个表都是六七十个字段的。只能一个一个写的。
      

  5.   


    两种方法:
     1: 用邦定技术。参考DataBinding. winform上的任何控件都是可绑定的。 2: 用Tag的意思是这样的,
         你可以将字段名在初始化时写到Tag属性中,然后要读取或设置TextBox值时,去循环遍历窗体中的控件,再根据tab属性存取。(这只是一个小技巧,并不是什么大方法。)
      

  6.   

    我支持 marscrazy() 的解决方法


    你把Tag设置为对应的字段名,然后搞一个控件数组if (((Control)Conclu[i]).Tag != null)
    {
    dtRet.Tables[0].Rows[0][((Control)Conclu[i]).Tag.ToString()] = ((Control)Conclu[i]).Text;
    }