2

[+] ボタンを使用して TextBox を追加するフォームがあります。最初のテキスト ボックスとボタンは実行時に作成されるため、ボタンの Click イベントを定義するコードは次のようになります (またはそうあるべきです)。

AddHandler button1.Click, AddressOf ButtonPlusClick

これまでのところ問題はありませんが、問題は次のとおりです: ButtonPlusClick()に 2 つのパラメーターが必要です:テキストボックスを追加するパネル ID。ページ内で ID を繰り返さないでください。

だからここで私は迷ってしまいました。

Delegate Sub MySubDelegate(ByVal container As Panel, ByVal nseq As Integer)
Dim msd As MySubDelegate
msd = AddressOf ButtonPlusClick
msd.invoke(Panel1, 3)

しかし、ねえ、私は今呼び出すのではなく、パラメーターを必要とする関数を呼び出さなければならないbutton1.Click イベントを定義しています。

(最終結果は次のようなリストになり、これはすべてクラスのコードによって作成されます):

[TextBox] [+]
[TextBox] [+]
[TextBox] [+]

)

4

2 に答える 2

1

を使用できます Dictionary(Of String, Int32)。キーはパネルの ID で、値はすでに作成された数ですTextBoxes

次に、FindControl(panelID) を使用して、 への参照を取得できますPanel。遅くともカウントから TextBoxes を再作成する必要がありますPage_Load。「TextBox_1」、「TextBox_2」...「TextBox_10」のように、連続した番号から ID を取得します。ここで、10 はValueこのパネルのディクショナリにあります。

イベント ハンドラーでは、1 つのテキスト ボックスを作成し、1 を辞書の値に合計するメソッドを呼び出すだけです。

于 2012-09-26T12:22:55.073 に答える
0

Page_Init関数でディクショナリから同じコントロールIDを割り当てる必要があります。そうしないと、button_clickイベントが呼び出されません。

于 2012-09-26T12:28:16.650 に答える