65.9K
CodeProject 正在变化。 阅读更多。
Home

VB.NET 中的控件数组

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.36/5 (33投票s)

2004年3月11日

2分钟阅读

viewsIcon

286995

本文解释了带有示例的控件数组。

控件数组

控件数组是共享通用事件处理程序的控件数组。也就是说,您只需要为单个事件编写代码,就可以处理其他控件的事件。

例如,如果您考虑一个像计算器这样的应用程序,在从 0 到 9 的按钮的单击事件中,您希望将文本附加到可见文本。因此,如果您为所有单个按钮编写代码,这将是一个耗时的过程。因为我们需要为所有这些按钮使用相同的代码片段,所以我们可以创建一个事件处理程序来处理所有这些按钮引发的事件。

在 Visual Basic 6 中,这非常简单。您必须复制并粘贴控件,并在询问是否创建控件数组时确认“是”。您会看到第一个控件自动获得索引 0,后续控件的索引从上一个控件的索引递增 1。如果您双击按钮,您会看到所有这些控件都具有相同的事件处理程序,但是您会注意到一个新的参数,该参数传递给单击事件,名为 Index。这个索引属性就是告诉您单击了哪个按钮的属性(如果您想知道,哪个按钮被点击了)。要在运行时创建此功能,可以在设计时复制一个控件,并使用此按钮创建其他按钮。您可以在 VB6 中动态加载和删除控件。

在 .NET 中,控件数组的创建比以前的版本更容易,并且不是通过复制和粘贴创建的,而是简单地将控件事件添加到 Handles 列表中。您可以为这个过程指定任何名称。

示例

Private Sub ClickButton(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles Button1.Click, _
  Button2.Click, Button3.Enter
        Dim btn As Button
        btn = CType(sender, Button)
        MsgBox(btn.Text)
End Sub 

在上面的示例中,ClickButton过程处理 Button1Button2的单击事件,以及Button3Enter事件。为了检查按下的控件,您需要将发送者转换为相应的类型。CType函数将其转换为按钮类型,以便您可以访问由控件引发的事件的属性。

现在让我们看看如何在运行时创建按钮,

'Create the button
        Dim btn As New Button()
'Specify the 
location and the size
        btn.Location = New System.Drawing.Point(200, 30)
        btn.Size = New System.Drawing.Size(100, 20)
        btn.Text = "New Button"
'Add it to the forms control collection
               Me.Controls.Add(btn)
'Link the event to the event handler
        AddHandler btn.Click, AddressOf Me.ClickButton 
© . All rights reserved.