none
数组的值批量赋值给textbox的办法 RRS feed

  • 问题

  • 我有一个有50个值的数组,譬如说是A(49),我能不能批量赋值给50个textbox的text属性呢?

    能不能这样类似的复制方法呢?

    Dim n As Integer

    for n = 0 to 49

    textbox & n & .text = CStr( A(n) )

    next

    只要是批量赋值的办法其实就可以了……谢谢各位了。

    2011年8月10日 3:40

答案

  • 如果楼主的文本框是按照Textbox1 到 Textbox50这样命名的话,可以采用以下代码实现你的目的

        For i = 1 To 50
          Me.Controls.Find("Textbox" & i, False)(0).Text = A(i - 1)
        Next
    

    如果你的控件是不是放在主窗体,而是在别的容器之内的话,请把Me换成容器名


    算神的博客
    • 已标记为答案 abcsai 2011年8月10日 8:49
    2011年8月10日 5:49
  • 您好

    假設您的 TextBox 名稱為 TextBox0 到 TextBox49,並且這些 TextBox 是在 Form 中

        For n As Integer = 0 To 49
          Me.Controls("TextBox" & n).Text = CStr(a(n))
        Next

     


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 abcsai 2011年8月10日 8:39
    2011年8月10日 6:36

全部回复

  • 我有一个有50个值的数组,譬如说是A(49),我能不能批量赋值给50个textbox的text属性呢?

    能不能这样类似的复制方法呢?

    Dim n As Integer

    for n = 0 to 49

    textbox & n & .text = CStr( A(n) )

    next

    只要是批量赋值的办法其实就可以了……谢谢各位了。


    当然可以。有一个办法:

    先生成50个TextBox:

    List(of TextBox) txtboxes = new List(Of TextBox);

    For i as Integer = 1 to 50

          Dim t As New TextBox

          t.Name = "TextBox" & i

         txtboxes.Add(t)

         '然后使用自己代码把t添加到WinForm窗体或者其它地方

    Next

    这样做有一个好处:要修改任意一个TextBox内容:

    txtboxes(0).Text = "新内容"   '更新第一个TextBox的内容

    或者用循环

    For i As Integer = 0 To txtboxes.Length-1

         txtboxes(i).Text = i.ToString()

    Next


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    2011年8月10日 4:32
    版主
  • 如果楼主的文本框是按照Textbox1 到 Textbox50这样命名的话,可以采用以下代码实现你的目的

        For i = 1 To 50
          Me.Controls.Find("Textbox" & i, False)(0).Text = A(i - 1)
        Next
    

    如果你的控件是不是放在主窗体,而是在别的容器之内的话,请把Me换成容器名


    算神的博客
    • 已标记为答案 abcsai 2011年8月10日 8:49
    2011年8月10日 5:49
  • 如果楼主的文本框是按照Textbox1 到 Textbox50这样命名的话,可以采用以下代码实现你的目的

      For i = 1 To 50
       Me.Controls.Find("Textbox" & i, False)(0).Text = A(i - 1)
      Next
    

    如果你的控件是不是放在主窗体,而是在别的容器之内的话,请把Me换成容器名


    算神的博客


    补充,如果你确定某个面板中有1~50个TextBox,那么直接:

    For i As Intger = 1 To 50

    CType(面板.Controls("Text" & i),TextBox).Text = i.ToString()

    Next


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月10日 6:10
    版主
  • 如果楼主的文本框是按照Textbox1 到 Textbox50这样命名的话,可以采用以下代码实现你的目的

     For i = 1 To 50
    
      Me.Controls.Find("Textbox" & i, False)(0).Text = A(i - 1)
    
     Next
    
    

    如果你的控件是不是放在主窗体,而是在别的容器之内的话,请把Me换成容器名


    算神的博客


    补充,如果你确定某个面板中有1~50个TextBox,那么直接:

    For i As Intger = 1 To 50

    CType(面板.Controls("Text" & i),TextBox).Text = i.ToString()

    Next


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    CType是多此一举了,.Text是Control的共有属性,而.Net中所有控件都是继承Control类的,所以就算没有类型转换,从Controls数组中获得的元素都是带Text属性的
    算神的博客
    2011年8月10日 6:17
  • CType是多此一举了,.Text是Control的共有属性,而.Net中所有控件都是继承Control类的,所以就算没有类型转换,从Controls数组中获得的元素都是带Text属性的
    算神的博客


    哈哈,严谨起见……

    不过谢谢了!


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月10日 6:19
    版主
  • 您好

    假設您的 TextBox 名稱為 TextBox0 到 TextBox49,並且這些 TextBox 是在 Form 中

        For n As Integer = 0 To 49
          Me.Controls("TextBox" & n).Text = CStr(a(n))
        Next

     


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 abcsai 2011年8月10日 8:39
    2011年8月10日 6:36
  • 感谢您的详细答案,我在里面学到了很多东西。谢谢您

     

    2011年8月10日 10:54
  • 感谢您的答案,在您的答案,我学会可操作control

    实在是太感谢您了

     

    2011年8月10日 10:56
  • 再次麻烦了小欧老师了
    2011年8月10日 10:56
  • 非常谢谢各位老师
    Be a good forum member. Make this forum a great place to meet and interact with others around the world.
    2011年8月10日 16:48