私は、アプリケーションにパネルに含まれているテキストボックスが非常に多いです。テキストボックスは4でグループ化されています。例:l1、w1、q1、p1、l2、w2、q2、p2、....内部のコードは完璧に動作していますが、大量のテキストボックスを短縮するコード
If l24.Text <> "" And w24.Text <> "" And q24.Text <> "" And p24.Text <> "" Then
counter += 1
Dim a, b, c, d As Integer
a = Convert.ToInt16(p24.Text.Substring(0, 1))
b = Convert.ToInt16(p24.Text.Substring(1, 1))
c = Convert.ToInt16(p24.Text.Substring(2, 1))
d = Convert.ToInt16(p24.Text.Substring(3, 1))
If a = 4 Or a = 5 Or b = 4 Or b = 5 Or c = 4 Or c = 5 Or d = 4 Or d = 5 Then
forpress += (Convert.ToInt16(l24.Text) + pressing) * (Convert.ToInt16(w24.Text) + pressing) * (Convert.ToInt16(q24.Text))
End If
Select Case a
Case 1
half += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
End Select
Select Case b
Case 1
half += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
End Select
Select Case c
Case 1
half += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
End Select
Select Case d
Case 1
half += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
End Select
End If
これは、1組のテキストボックス(l24、w24、q24、p24)の例です。コードラインを最小化してコンパイル時間を短縮するために、どのようにテキストボックスのすべてのセットに参加できますか? 本当に助けてください。
「ケース」はどこにありますか?なぜこの膨大な量の変数がありますか? 'List(Of T)'について聞いたことがありますか? – Clijsters
いいえ、まだありません。しかし、とにかくthx。私はそれを見てください – Jad
多次元配列を使用することは可能ですか?彼らはあなたのような状況でうまくいく。 (具体的には、2D配列です)。 https://msdn.microsoft.com/en-us/library/d2de1t93(v=vs.90).aspx – user7777777