VB.net でショッピング システム用のプログラムを作成しようとしています。データベースを読み込んで、フォームにアイテムを入力します。アプリは、スクロール可能なパネル内のラベルに製品名などの情報を表示します。オブジェクトを作成し、実行時にテキストなどの値を割り当てます。コードにループを使用しています。
vb 6 を使用していた場合、制御配列があり、インデックスとカウンターを使用してデータを表示します。vb.netでこれを行っているので、それを行う方法がありません..解決策はありますか?
VB.net でショッピング システム用のプログラムを作成しようとしています。データベースを読み込んで、フォームにアイテムを入力します。アプリは、スクロール可能なパネル内のラベルに製品名などの情報を表示します。オブジェクトを作成し、実行時にテキストなどの値を割り当てます。コードにループを使用しています。
vb 6 を使用していた場合、制御配列があり、インデックスとカウンターを使用してデータを表示します。vb.netでこれを行っているので、それを行う方法がありません..解決策はありますか?
VB.NET は、VB6 と同じ意味で、コントロール配列をサポートしていません。ただし、同様のことはできます。たとえば、複数のコントロールからのイベントを同じメソッドで処理したい場合は、次のようにできます。
Private Sub MyClickHandler(sender As Object, e As EventArgs) Handles _
Button1.Click, _
Button2.Click, _
Button3.Click
Dim buttonThatWasClicked As Button = CType(sender, Button)
' Do something...
End Sub
ループできるコントロールの配列を作成したい場合は、次のように実行できます。
Dim myTextBoxes() As TextBox = New TextBox() { TextBox1, TextBox2, TextBox3 }
For i As Integer = 0 to myTextBoxes.Length - 1
myTextBoxes(i).Text = ...
Next
または、コントロールに一貫した名前を付ける場合は、フォームのControls
コレクションで名前で見つけることができます。たとえば、TextBox1
、TextBox2
、という名前の 3 つのテキスト ボックスがある場合TextBox3
、次のようにそれらをループできます。
For i As Integer = 1 to 3
Dim t As TextBox = CType(Me.Controls("TextBox" & i.ToString()), TextBox)
t.Text = ...
Next
VB.NET には、コントロール配列自体がありません。
ただし、コントロールの配列を作成して、配列の各要素にコントロールを割り当てることはできますが、List(Of Control)
.
これにより、コレクションをループできます。
VB.NET には Control 配列はありません。ただし、 Panel.Controlsコレクションを反復処理することはできます。すべてのコントロールがそのコレクションにあります (それらがすべて同じパネルにある場合)。
For i = 0 To Panel1.Controls.Count - 1
Dim control = Panel1.Controls(i)
'Do something with control..
Next
まず、これにグリッドを使用できない理由はありますか? -それは明らかな解決策です(VB6でもそうであったように)。
到着予定日。. .ただし、必要に応じて、このコード スニペットは一連のラベルをフォームに追加します。これを変更する必要があります。たとえば、for next ループを for each r に置き換えて、mydataset.mydatatable 内の mydataset.mytabledatarow などにします。
For i = 1 To 10
Dim l As New Label
l.Location = New System.Drawing.Point With {.x = 10, .y = i * 30}
Me.Controls.Add(l)
l.Text = "test " & i.ToString
Next