none
[VB2005] 陣列迴圈編寫問題 RRS feed

  • 問題

  • 請問各位大大

    譬如我有一個陣列 length=10 A(0~9)  還有10個Text物件(非陣列) Text0~Text9
    我想把此陣列順序把資料丟到Text物件上(用迴圈方式編寫)  Text0=A(0),Text1=A(1)........
    請問我該編寫此段程式

    謝謝
    2010年3月1日 上午 12:25

解答


  • 1. 假如您的 TextBox Name 為 TextBox0 到 TextBox9
            Dim a() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
            For i As Integer = 0 To 9
                Me.Controls("TextBox" & i.ToString()).Text = a(i)
            Next
    2. 使用 Control.Find
            Dim a() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
            Dim strName = String.Empty
            For i As Integer = 0 To 9
                strName = "TextBox" & i.ToString()
                If Controls.Find(strName, True).Length > 0 Then
                    Controls.Find(strName, True)(0).Text = a(i)
                End If
            Next






    小歐ou是個菜鳥工程師,回答不好請不要標我的回覆為解答,有網友熱心回覆也請發問者儘快回應,謝謝
    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 Vic-Su 2010年3月1日 上午 02:49
    2010年3月1日 上午 01:03
    版主

所有回覆


  • 1. 假如您的 TextBox Name 為 TextBox0 到 TextBox9
            Dim a() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
            For i As Integer = 0 To 9
                Me.Controls("TextBox" & i.ToString()).Text = a(i)
            Next
    2. 使用 Control.Find
            Dim a() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
            Dim strName = String.Empty
            For i As Integer = 0 To 9
                strName = "TextBox" & i.ToString()
                If Controls.Find(strName, True).Length > 0 Then
                    Controls.Find(strName, True)(0).Text = a(i)
                End If
            Next






    小歐ou是個菜鳥工程師,回答不好請不要標我的回覆為解答,有網友熱心回覆也請發問者儘快回應,謝謝
    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 Vic-Su 2010年3月1日 上午 02:49
    2010年3月1日 上午 01:03
    版主
  • 了解
    謝謝你 ^^
    2010年3月1日 上午 02:49
  • 請問一下,我把您的程式copy去試用一下結果,不能用,請問有那些物件要宣告設定的

    textbox物件我有弄。

    錯誤訊息

    並未將物件參考設定為物件的執行個體。

    2011年1月4日 下午 06:08
  • 請問一下,我把您的程式copy去試用一下結果,不能用,請問有那些物件要宣告設定的

    textbox物件我有弄。

    錯誤訊息

    並未將物件參考設定為物件的執行個體。


    確認你的TextBox的命名是 TextBox0, TextBox1.....TextBox9 (因為一般拉控制項會從1開始)

    不然就把迴圈改為 For i as Integer=1 to 10

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年1月4日 下午 06:38
    版主
  • 請問一下,我把您的程式copy去試用一下結果,不能用,請問有那些物件要宣告設定的

    textbox物件我有弄。

    錯誤訊息

    並未將物件參考設定為物件的執行個體。


    您好

    建議用  If Controls.Find(strName, True).Length > 0 Then 去判斷,當 Length 為 0 時表示你給的 Name 錯了


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年1月5日 上午 01:30
    版主
  • Hi,

    若出現"並未將物件參考設定為物件的執行個體"錯誤

    應試著Debug,IDE會告知你是哪個變數是沒有執行個體的

    也會幫你中斷在出問題的地方

    你可以從中斷處下去看是哪個環節出了問題

     

    我的想法也是跟上面兩位大大一樣

    你應該是控制項的名字給錯

    這代表你沒有深入去了解這段程式是透過控制項的名稱下去處理的

    因此要遵照一定的規則下去命名要控制的控制項

     

    除了透過控制項名稱下去處理的作法外,通常這類要用迴圈控制的控制項在界面上都會放在一起

    可考慮在界面放個Panel之類的容器

    然後把要控制的控制項改放在容器中

    迴圈依序處理容器內的控制項就可以了

    控制項不是很多的話,也可以改用陣列存放這些控制項的物件參考

    這樣會比較不受控制項命名所影響


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2011年1月5日 上午 04:57