2016-08-07 11 views
2

したがって、配列に項目を追加して、配列内のすべての項目をテキストボックスに戻そうとしています。誰かが私が間違っていることを教えてもらえますか?ボタンをクリックすると、エラーが表示されるか、system.string[]が表示されたり、すべての項目が表示されず、一部または全部の項目が表示されません。 edit1:ここには更新されたコードがあります。すべての配列の内容をテキストボックスに表示

Public Class Form1 
    Dim x As Integer = 0 
    Dim strencode As String 
    Dim strletters As String 
    Dim strholder(0 To 999) As String 


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     strletters = TextBox1.Text 
     Label2.Text = x.ToString 
     If TextBox1.TextLength < x Then 
      x = 0 

     End If 


     If TextBox1.TextLength <> 0 Then 
      If TextBox1.TextLength < x Then 
       x = 0 
      End If 



      Do Until x = TextBox1.TextLength 
       If TextBox1.TextLength < x Then 
        x = 0 
       End If 
       If TextBox1.TextLength <> 0 Then 
        If strletters.Substring(x, 1) = "A" Then 
         strholder(x) = "346," 
         x = x + 1 
        ElseIf strletters.Substring(x, 1) = "B" Then 
         strholder(x) = "917," 
         x = x + 1 
        End If 




       End If 
      Loop 


pause: 





      Dim i As Integer 
      For i = 0 To (x - 1) 
       TextBox2.Text = (strholder(i)) 
      Next 

     End If 
    End Sub 

End Class 
+0

どのようなコード行にどのようなエラーメッセージが表示されますか? – dbmitch

+0

コードで行うべきものではなく、達成しようとしているもの(機能性/振る舞いとして)を理解できるようにするために、最初の "状態" /最終 "状態"を追加する必要があります。 – Sehnsucht

+0

この行を次のように更新します。TextBox2.Text&= strholder(i) – EJD

答えて

0

あなたstrletters文字列中の「A」と「B」と異なる任意の文字を持っている場合、あなたのDo Untilブロックは無期限に継続します。あなたは簡単にString.Joinを使用してstrholderアレイの出力を連結することができ、さらに

Do Until x = TextBox1.TextLength 
    ' Some conditions 
    ' Some more conditions   
    x = x + 1 ' Increment regardless 
Loop 

:常にxの値をインクリメントするようにしてください

TextBox2.Text = String.Join(String.Empty, strholder) 

アップデート:ここで

が持つコードスニペットです他の方法のいくつか...

Public Class Form1 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     ' Converting a string to a char array 
     Dim charArray() As Char = TextBox1.Text.ToCharArray 
     ' Converting a string to a string array 
     Dim stringArray() As String = TextBox1.Text.Select(Function(c) c.ToString).ToArray 

     ' Concatenate using a For Each loop 
     For Each ch In charArray ' or stringArray 
      ' do something with each ch... 
      TextBox2.Text &= ch ' Concatenate using the & operator 
      'TextBox2.Text += ch ' Concatenate using the + operator 
     Next 

     ' Converting a char array back to a string 
     TextBox2.Text = String.Join(String.Empty, charArray) 
     ' Converting a string array back to a string, method 1 
     TextBox2.Text = String.Join(String.Empty, stringArray) 
     ' Converting a string array back to a string, method 2 
     TextBox2.Text = stringArray.Aggregate(Function(final, sCh) final & sCh) 

     ' In your case you could just simply... 
     TextBox2.Text = TextBox1.Text.Replace("A"c, "346,").Replace("B"c, "917,") 
    End Sub 
End Class 

As連結演算子を選択するには、this