Visual Basic 6.0 控件和 .NET 控件的区别(续)
点击次数:80 次 发布日期:2008-11-06 08:06:56 作者:源代码网
|
源代码网推荐 源代码网推荐 如图 1 所示,在用键盘键入数据的输入窗体上,您可能希望使 Add、Update、Delete 和 Clear 按钮保持在窗体的右下角。要实现此目的,请突出显示这些按钮,然后将 Anchor 属性设置为 BottomRight。要执行此操作,请在 Properties 窗口中找到 Anchor 属性,并单击其下拉箭头。清除选择左边和上边的栏,然后选择右边和下边的栏,如图 2 所示。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 图 2:已激活 Anchor 下拉列表的 Properties 对话框 源代码网推荐 源代码网推荐 使用 Anchor 属性,您不必编写任何代码行就能将控件锚定在窗体的任何边。通过选择图形化菜单中的选项,您可以选择所需的操作。在代码中,可以使用诸如 TopLeft、BottomRight、Left、Right、Top、Bottom、TopLeftBottom 和 All 等常量来设置属性值。 源代码网推荐 源代码网推荐 靠接 源代码网推荐 Dock 属性类似于 Anchor 属性,使您可以将控件靠接到容器的任何边。靠接控件时,控件将随窗体的缩放而缩放,但其靠接的边保持不变,如果将控件靠接在窗体的所有边,则控件将充满整个窗体。 源代码网推荐 源代码网推荐 关于控件数组 源代码网推荐 在 Visual Basic 6.0 中,将所有控件的 Name 属性设置为相同的值便可以创建控件数组。随后,每个控件的 Index 属性会被设置为不同的编号。Index 值被传递给该组控件的任意事件,这样您就可以知道哪个控件调用了该事件。这是 Visual Basic 6.0 中控件数组的用途之一,即一个事件过程处理多个控件的代码。 源代码网推荐 源代码网推荐 而在 Visual Basic .NET 中,处理控件数组的方式则大不一样。实现一个过程处理多个控件的事件的方法有两种:使用内嵌于 .NET 类中的 AddHandler 过程,或在过程中使用 Handles 子句。 源代码网推荐 源代码网推荐 如果您只希望编写一个 Click 事件,使窗体底部的所有按钮都具备该事件,您可以双击其中一个按钮,使代码窗口生成一个 Click 事件过程。此过程的代码如下: 源代码网推荐 源代码网推荐 Private Sub btnSave_Click( _ 源代码网推荐 ByVal sender As Object, _ 源代码网推荐 ByVal e As System.EventArgs) _ 源代码网推荐 Handles btnSave.Click, btnNew.Click, btnDelete.Click 源代码网推荐 MessageBox.Show("Click 事件") 源代码网推荐 End Sub 源代码网推荐 尽管以上代码很简单,但它说明了不同控件如何调用同一过程。除了创建控件数组,您还可以通过创建并指定事件处理程序来响应多个控件的一个或多个事件。 源代码网推荐 源代码网推荐 除了 Handles 子句,您还可以使用 AddHandler 语句实现一个过程处理多个控件的事件。该语句使您可以向任何事件添加事件处理程序,并指定要调用的过程。由于可以向事件添加事件处理程序,您可以使用一系列事件处理程序来处理相同的事件,实际上是在告诉控件应该调用哪个过程来响应事件。因为是委托事件处理程序来处理这一新过程,所以此过程称为“代理”。 软件开发网 www.mscto.com 源代码网推荐 源代码网推荐 要使代理生效,请在窗体的 New 方法中现有代码的 TODO 注释下面添加类似下面的代码: 源代码网推荐 源代码网推荐 AddHandler btnDelete.Click, AddressOf ButtonClick 源代码网推荐 源代码网推荐 AddHandler btnNew.Click, AddressOf ButtonClick 源代码网推荐 源代码网推荐 完成上述代码的添加后,如果单击 New、Delete、或 Save 按钮,则会调用 ButtonClick 事件过程。当然,您可能需要确定调用此特殊事件过程的按钮。要做到这一点,您可以使用传递给所有事件过程的 sender 参数,它是产生该特殊事件的对象。因此您可以编写如下代码: 源代码网推荐 源代码网推荐 Private Sub ButtonClick( _ 源代码网推荐 ByVal sender As Object, _ 源代码网推荐 ByVal e As System.EventArgs) 源代码网推荐 If sender Is btnNew Then 源代码网推荐 MessageBox.Show("已按下 New 按钮") 源代码网推荐 ElseIf sender Is btnSave Then 源代码网推荐 MessageBox.Show("已按下 Save 按钮") 源代码网推荐 ElseIf sender Is btnDelete Then 源代码网推荐 源代码网供稿. |
