0

というテキスト ボックスからそれぞれ 1 文字を含む 9 つのラベルがありますtxthidden。ボタンをクリックするbutton3と、ラベルは異なる文字配列で表示されるようになっています。私の問題はそれらが表示されないことです。テキストボックスに9文字がない場合、次のようなエラーが表示されます:

Index was outside the bounds of the array.

テキスト ボックスの長さに一致するラベルのみを表示する方法はありますか?

前もって感謝します!

これが私のコードです:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Dim hiddenarray() As Char
    hiddenarray = Me.txthidden.Text.ToCharArray
    lbl1.Text = hiddenarray(0)
    lbl2.Text = hiddenarray(1)
    lbl3.Text = hiddenarray(2)
    lbl4.Text = hiddenarray(3)
    lbl5.Text = hiddenarray(4)
    lbl6.Text = hiddenarray(5)
    lbl7.Text = hiddenarray(6)
    lbl8.Text = hiddenarray(7)
    lbl9.Text = hiddenarray(8)
End Sub
4

1 に答える 1

0

多くの方法があります。たとえば、簡単な解決策は次を確認することです。

lbl1.Text = IIf(hiddenarray.Lenght > 0, hiddenarray(0), "")
lbl2.Text = IIf(hiddenarray.Lenght > 1, hiddenarray(1), "")
'etc

別の方法は、テキストボックスをその名前で動的に選択してループすることです。

For i As Integer = 0 To hiddenarray.Lenght - 1
    Me.Controls("lbl" & i + 1).Text = hiddenarray(i)
Next
于 2013-04-26T05:39:59.933 に答える