none
下面程式碼如何使用陣列來簡化(VB2010) RRS feed

  • 問題

  • Public Class Form1
        Dim X(20)
        Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click
            X(1) = NUM1.Text * ratio1.Value
            X(2) = NUM2.Text * ratio2.Value
            X(3) = NUM3.Text * ratio3.Value
            X(4) = NUM4.Text * ratio4.Value
            X(5) = NUM5.Text * ratio5.Value
            X(6) = NUM6.Text * ratio6.Value
            X(7) = NUM7.Text * ratio7.Value
            X(8) = NUM8.Text * ratio8.Value
            X(9) = NUM9.Text * ratio9.Value
            X(10) = NUM10.Text * ratio10.Value
            X(11) = NUM11.Text * ratio11.Value
    2017年6月15日 上午 09:35

解答

  • 可以這樣

    Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click
       Dim txtNum As TextBox
       Dim rbnNum as TextBox '(這裡不知道你的ratio是什麼 control,我在這先把它當成也是 TextBox)
    
       For i as Interger = 1 To 11
          txtNum  = CType(Me.Controls("NUM" & i.ToString()), TextBox)
          rbnNum = CType(Me.Controls("ratio" & i.ToString()), TextBox)
          If ((Not txtNum Is Nothing) && (Not rbnNum is Nothing))
             X(i) = txtNum.Text * rbnNum.Text
          End If
       Next
    
    End Sub


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.


    2017年6月19日 上午 02:10

所有回覆

  • NUM1~11 和 ratio1~11 這 22 個 controls 也會位在某個 集合中,你可以查看 Form1.Designer.vb 就會看到了

    既然它們位於集合中,就可以用迴圈抓了。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2017年6月15日 上午 09:43
    版主
  • 您可以考慮將Num和Ratio製作成一個控制項, 再於控制項中製作一個屬性, 內容值為Num.Text * Ration.Value的結果, 程式只要取用控制項屬性的內容值即可
    2017年6月16日 上午 01:22
  • 可以這樣

    Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click
       Dim txtNum As TextBox
       Dim rbnNum as TextBox '(這裡不知道你的ratio是什麼 control,我在這先把它當成也是 TextBox)
    
       For i as Interger = 1 To 11
          txtNum  = CType(Me.Controls("NUM" & i.ToString()), TextBox)
          rbnNum = CType(Me.Controls("ratio" & i.ToString()), TextBox)
          If ((Not txtNum Is Nothing) && (Not rbnNum is Nothing))
             X(i) = txtNum.Text * rbnNum.Text
          End If
       Next
    
    End Sub


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.


    2017年6月19日 上午 02:10
  • 他的 ratio 帶著 Value Property , 極有可能是 NumericUpDown

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2017年6月19日 上午 03:28
    版主