2

我有一个表单,我在其中添加带有 [+] 按钮的 TextBox,第一个文本框和按钮是在运行时创建的,因此,定义按钮的 Click 事件的代码是(或应该是)类似于:

AddHandler button1.Click, AddressOf ButtonPlusClick

到目前为止没问题,但问题是:我需要ButtonPlusClick()中的 2 个参数:面板 ID 我要在其中添加文本框,因为页面有一个扩展的控件列表和最后创建的 TextBox 的序列号,以便不要在页面中重复 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. Page_Load您最迟需要从计数中重新创建文本框。从连续数字派生 ID,例如“TextBox_1”、“TextBox_2”...“TextBox_10”,其中 10 是Value此面板的字典中的值。

在事件处理程序中,您只需调用创建一个文本框并将 1 与字典值相加的方法。

于 2012-09-26T12:22:55.073 回答
0

您必须在 Page_Init 函数中从字典中分配相同的控件 ID,否则不会调用 button_click 事件。

于 2012-09-26T12:28:16.650 回答