私はまだVBを学んでおり、適切なチュートリアルがない問題に遭遇しました。ループの各サイクルで Textbox と Update ボタンを生成する動的フォームを作成しました。
次のグローバル変数を宣言しました。
Dim tbRef As Textbox
WithEvents btnUpdate As Button
その後のループで次の
Do Until counter = Maxrows
counter = counter + 1
...
tbRef = New TextBox
...
Me.Controls.Add(tbRef)
btnUpdate = New button
...
AddHandler btnUpdate.Click, AddressOf btnUpdate_Click
Me.Controls.Add(btnUpdate)
...
tbRef.Text = ds.Tables("Records").Rows(counter - 1).Item(0)
Loop
そして最後に
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
UpdateForm.tbRef.Text = Me.tbRef.Text
UpdateForm.Show()
End Sub
私の問題は:
このコードは正しいレイアウトと正しいコントロールを生成し、結果が 1 つしか返されない場合でもボタンは正常に機能します。複数のボタンが作成されている場合、すべてのボタンは最後に生成された Textbox の内容を参照します。私がインターネットで得た唯一の答えは、Ctype/DirectCast を使用して各テキスト ボックスの内容を生成されたボタンにキャストする必要があるというものでしたが、このコンテキストでこれらの演算子を使用する方法に関するチュートリアルは見つかりません。どんな助けでも大歓迎です。