2016-10-19 18 views
1

Si私は10人のRadioButtonを持っており、1人から10人の間で何を選ぶかに応じて、対応するTextBoxの多くを必要としています。私は名前でそれを埋めることができるようになった!Visual Basicの反復可能なテキストボックス

私が知っている私は1と私はラジオボタンから選んだ番号の間にループのために作ると私のTextBoxsがTextBox10

にTextBox1を呼ばれているので

For i = 0 to Size 
{ 
    TextBox&i.Enabled = True 
} 

ような何かを言うための方法があります&を使用して文字列を一緒に追加することはできますが、オブジェクト名としてどのようにすればいいですか?

私は、文字通り、手動でのTextBoxの正しい数を可能にし、各RadioButtonの内部のクリックイベントでそれを行うの非常識な方法を、持っている今の時点で...

は、事前にありがとうございます!

答えて

1

あなたはこのようなすべてのコントロールを反復処理することができます

For Each ctr In Me.Controls 
Dim indx As String = ctr.Name 
If TypeOf (ctr) Is Textbox Then 
' Now compare the name with TextBox&i and do smth 
End If 
Next 
+0

ありがとうございます!それはコントロールを使用して、それを行う方法のようです – Bardia

+0

注文*はフォーム上のコントロールの配置と論理的に一貫しないかもしれないことに留意してください。そのような問題がある場合は、自分の 'List of Checkbox 'を作成し、必要な順番でそのリストにチェックボックスを追加し、' Form'の 'Controls'の代わりにそのコレクションをループすることができます。 –

1

それは単なる文字列を連結し、そのようなオブジェクト変数の参照として使用することはできませんが、あなたは自分の名前のプロパティでフォームのコントロールを検索することができます(これは文字列です)、そのようにします。ここに例があります:

Private Sub EnableTextBoxes(ByVal Size As Integer) 
    For i As Integer = 1 To Size 
     Dim matches() As Control = Me.Controls.Find("Textbox" & i.ToString, True) 
     If matches IsNot Nothing AndAlso matches.Length = 1 Then matches(0).Enabled = True 
    Next 
End Sub 
関連する問題