vb.net订阅事件的简单介绍
vb.net动态添加控件,并且绑定了一些事件,这些事件只能对最新生成的控件做修改,之前生成的无法修改
比如说这样添加的计时器:
创新互联公司是一家专业提供萧县企业网站建设,专注与成都网站制作、成都网站设计、HTML5、小程序制作等业务。10年已为萧县众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
Dim Timer1 As New Timer
你要在合适的地方开始,比如窗体Load事件中,这样:
Timer1.Interval = 1000 '单位毫秒,1000毫秒=1秒
Timer1.Enabled = True '启用计时器
然后在代码窗口上方下拉列表里选择Timer1的Tick事件,自动添加代码:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
End Sub
这是计时器触发的事件,每秒触发一次,在这里面输入循环判断是否有日程即可。提示:你可以用Now对象获取当前的日期和时间。
VB.NET的Form的所有事件
名称
说明
Activated
当使用代码激活或用户激活窗体时发生。
AutoSizeChanged
当 AutoSize 属性更改时发生。
AutoValidateChanged
当 AutoValidate 属性更改时发生。
BackColorChanged
当 BackColor 属性的值更改时发生。(从 Control 继承。)
BackgroundImageChanged
当 BackgroundImage 属性的值更改时发生。(从 Control 继承。)
BackgroundImageLayoutChanged
当 BackgroundImageLayout 属性更改时发生。(从 Control 继承。)
BindingContextChanged
当 BindingContext 属性的值更改时发生。(从 Control 继承。)
CausesValidationChanged
当 CausesValidation 属性的值更改时发生。(从 Control 继承。)
ChangeUICues
焦点或键盘用户界面 (UI) 提示更改时发生。(从 Control 继承。)
Click
在单击控件时发生。(从 Control 继承。)
ClientSizeChanged
当 ClientSize 属性的值更改时发生。(从 Control 继承。)
Closed
关闭窗体时发生。
Closing
关闭窗体时发生。
ContextMenuChanged
当 ContextMenu 属性的值更改时发生。(从 Control 继承。)
ContextMenuStripChanged
当 ContextMenuStrip 属性的值更改时发生。(从 Control 继承。)
ControlAdded
在将新控件添加到 Control.ControlCollection 时发生。(从 Control 继承。)
ControlRemoved
在从 Control.ControlCollection 移除控件时发生。(从 Control 继承。)
CursorChanged
当 Cursor 属性的值更改时发生。(从 Control 继承。)
Deactivate
当窗体失去焦点并不再是活动窗体时发生。
Disposed
当通过调用 Dispose 方法释放组件时发生。(从 Component 继承。)
DockChanged
当 Dock 属性的值更改时发生。(从 Control 继承。)
DoubleClick
在双击控件时发生。(从 Control 继承。)
DragDrop
拖放操作完成时发生。(从 Control 继承。)
DragEnter
在将对象拖入控件的边界时发生。(从 Control 继承。)
DragLeave
将对象拖出控件的边界时发生。(从 Control 继承。)
DragOver
在将对象拖到控件的边界上发生。(从 Control 继承。)
EnabledChanged
在 Enabled 属性值更改后发生。(从 Control 继承。)
Enter
进入控件时发生。(从 Control 继承。)
FontChanged
在 Font 属性值更改时发生。(从 Control 继承。)
ForeColorChanged
在 ForeColor 属性值更改时发生。(从 Control 继承。)
FormClosed
关闭窗体后发生。
FormClosing
关闭窗体前发生。
GiveFeedback
在执行拖动操作期间发生。(从 Control 继承。)
GotFocus
在控件接收焦点时发生。(从 Control 继承。)
HandleCreated
在为控件创建句柄时发生。(从 Control 继承。)
HandleDestroyed
在控件的句柄处于销毁过程中时发生。(从 Control 继承。)
HelpButtonClicked
单击“帮助”按钮时发生。
HelpRequested
用户请求控件帮助时发生。(从 Control 继承。)
ImeModeChanged
在 ImeMode 属性更改后发生。(从 Control 继承。)
InputLanguageChanged
更改窗体的输入语言后发生。
InputLanguageChanging
当用户尝试更改窗体的输入语言时发生。
Invalidated
控件的显示要求重新绘制时发生。(从 Control 继承。)
KeyDown
在控件有焦点的情况下按下键时发生。(从 Control 继承。)
KeyPress
在控件有焦点的情况下字符、空格或退格键时发生。(从 Control 继承。)
KeyUp
在控件有焦点的情况下释放键时发生。(从 Control 继承。)
Layout
在控件应重新定位其子控件时发生。(从 Control 继承。)
Leave
在输入焦点离开控件时发生。(从 Control 继承。)
Load
在第一次显示窗体前发生。
LocationChanged
在 Location 属性值更改后发生。(从 Control 继承。)
LostFocus
在控件失去焦点时发生。(从 Control 继承。)
MarginChanged
当 Margin 属性更改时发生。
MaximizedBoundsChanged
在 MaximizedBounds 属性的值更改后发生。
MaximumSizeChanged
在 MaximumSize 属性的值更改后发生。
MdiChildActivate
在多文档界面 (MDI) 应用程序内激活或关闭 MDI 子窗体时发生。
MenuComplete
当窗体菜单失去焦点时发生。
MenuStart
当窗体菜单接收焦点时发生。
MinimumSizeChanged
在 MinimumSize 属性的值更改后发生。
MouseCaptureChanged
当控件失去鼠标捕获时发生。(从 Control 继承。)
MouseClick
用鼠标单击控件时发生。(从 Control 继承。)
MouseDoubleClick
用鼠标双击控件时发生。(从 Control 继承。)
MouseDown
当鼠标指针位于控件上并按下鼠标键时发生。(从 Control 继承。)
MouseEnter
在鼠标指针进入控件时发生。(从 Control 继承。)
MouseHover
在鼠标指针停放在控件上时发生。(从 Control 继承。)
MouseLeave
在鼠标指针离开控件时发生。(从 Control 继承。)
MouseMove
在鼠标指针移到控件上时发生。(从 Control 继承。)
MouseUp
在鼠标指针在控件上并释放鼠标键时发生。(从 Control 继承。)
MouseWheel
在控件有焦点且鼠标轮移动时发生。(从 Control 继承。)
Move
在移动控件时发生。(从 Control 继承。)
PaddingChanged
在控件空白区更改时发生。(从 Control 继承。)
Paint
在重绘控件时发生。(从 Control 继承。)
ParentChanged
在 Parent 属性值更改时发生。(从 Control 继承。)
PreviewKeyDown
在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。(从Control 继承。)
QueryAccessibilityHelp
在 AccessibleObject 为辅助功能应用程序提供帮助时发生。(从 Control 继承。)
QueryContinueDrag
在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。(从 Control 继承。)
RegionChanged
当 Region 属性的值更改时发生。(从 Control 继承。)
Resize
在调整控件大小时发生。(从 Control 继承。)
ResizeBegin
窗体进入大小调整模式时发生。
ResizeEnd
窗体退出大小调整模式时发生。
RightToLeftChanged
在 RightToLeft 属性值更改时发生。(从 Control 继承。)
RightToLeftLayoutChanged
更改 RightToLeftLayout 属性值之后发生。
Scroll
用户或代码滚动工作区时发生。(从 ScrollableControl 继承。)
Shown
只要窗体是首次显示就发生。
SizeChanged
在 Size 属性值更改时发生。(从 Control 继承。)
StyleChanged
在控件样式更改时发生。(从 Control 继承。)
SystemColorsChanged
系统颜色更改时发生。(从 Control 继承。)
TabIndexChanged
此 API 支持 产品 基础结构,不能在代码中直接使用。 当 TabIndex 属性的值更改时发生。
TabStopChanged
当 TabStop 属性更改时发生。
TextChanged
在 Text 属性值更改时发生。(从 Control 继承。)
Validated
在控件完成验证时发生。(从 Control 继承。)
Validating
在控件验证时发生。(从 Control 继承。)
VisibleChanged
在 Visible 属性值更改时发生。(从 Control 继承。)
vb.net中如何用事件和委托,会C#中的事件和委托,但不知VB.net中的语法,望给个简单的例子熟悉语法。
一委托:此示例演示如何将方法与委托关联然后通过委托调用该方法。
创建委托和匹配过程
创建一个名为 MySubDelegate 的委托。
Delegate Sub MySubDelegate(ByVal x As Integer)
声明一个类,该类包含与该委托具有相同签名的方法。
Class class1
Sub Sub1(ByVal x As Integer)
MsgBox("The value of x is: " CStr(x))
End Sub
End Class
定义一个方法,该方法创建该委托的实例并通过调用内置的 Invoke 方法调用与该委托关联的方法。
Protected Sub DelegateTest()
Dim c1 As New class1
' Create an instance of the delegate.
Dim msd As MySubDelegate = AddressOf c1.Sub1
' Call the method.
msd.Invoke(10)
End Sub
二、事件
下面的示例程序阐释如何在一个类中引发一个事件,然后在另一个类中处理该事件。AlarmClock 类定义公共事件 Alarm,并提供引发该事件的方法。AlarmEventArgs 类派生自 EventArgs,并定义 Alarm 事件特定的数据。WakeMeUp 类定义处理 Alarm 事件的 AlarmRang 方法。AlarmDriver 类一起使用类,将使用 WakeMeUp 的 AlarmRang 方法设置为处理 AlarmClock 的 Alarm 事件。
该示例程序使用事件和委托和引发事件中详细说明的概念。
示例
' EventSample.vb.
'
Option Explicit
Option Strict
Imports System
Imports System.ComponentModel
Imports Microsoft.VisualBasic
Namespace EventSample
' Class that contains the data for
' the alarm event. Derives from System.EventArgs.
'
Public Class AlarmEventArgs
Inherits EventArgs
Private _snoozePressed As Boolean
Private nrings As Integer
'Constructor.
'
Public Sub New(snoozePressed As Boolean, nrings As Integer)
Me._snoozePressed = snoozePressed
Me.nrings = nrings
End Sub
' The NumRings property returns the number of rings
' that the alarm clock has sounded when the alarm event
' is generated.
'
Public ReadOnly Property NumRings() As Integer
Get
Return nrings
End Get
End Property
' The SnoozePressed property indicates whether the snooze
' button is pressed on the alarm when the alarm event is generated.
'
Public ReadOnly Property SnoozePressed() As Boolean
Get
Return _snoozePressed
End Get
End Property
' The AlarmText property that contains the wake-up message.
'
Public ReadOnly Property AlarmText() As String
Get
If _snoozePressed Then
Return "Wake Up!!! Snooze time is over."
Else
Return "Wake Up!"
End If
End Get
End Property
End Class
' Delegate declaration.
'
Public Delegate Sub AlarmEventHandler(sender As Object, _
e As AlarmEventArgs)
' The Alarm class that raises the alarm event.
'
Public Class AlarmClock
Private _snoozePressed As Boolean = False
Private nrings As Integer = 0
Private stopFlag As Boolean = False
' The Stop property indicates whether the
' alarm should be turned off.
'
Public Property [Stop]() As Boolean
Get
Return stopFlag
End Get
Set
stopFlag = value
End Set
End Property
' The SnoozePressed property indicates whether the snooze
' button is pressed on the alarm when the alarm event is generated.
'
Public Property SnoozePressed() As Boolean
Get
Return _snoozePressed
End Get
Set
_snoozePressed = value
End Set
End Property
' The event member that is of type AlarmEventHandler.
'
Public Event Alarm As AlarmEventHandler
' The protected OnAlarm method raises the event by invoking
' the delegates. The sender is always this, the current instance
' of the class.
'
Protected Overridable Sub OnAlarm(e As AlarmEventArgs)
RaiseEvent Alarm(Me, e)
End Sub
' This alarm clock does not have
' a user interface.
' To simulate the alarm mechanism it has a loop
' that raises the alarm event at every iteration
' with a time delay of 300 milliseconds,
' if snooze is not pressed. If snooze is pressed,
' the time delay is 1000 milliseconds.
'
Public Sub Start()
Do
nrings += 1
If stopFlag Then
Exit Do
Else
If _snoozePressed Then
System.Threading.Thread.Sleep(1000)
If (True) Then
Dim e As New AlarmEventArgs(_snoozePressed, nrings)
OnAlarm(e)
End If
Else
System.Threading.Thread.Sleep(300)
Dim e As New AlarmEventArgs(_snoozePressed, nrings)
OnAlarm(e)
End If
End If
Loop
End Sub
End Class
' The WakeMeUp class has a method AlarmRang that handles the
' alarm event.
'
Public Class WakeMeUp
Public Sub AlarmRang(sender As Object, e As AlarmEventArgs)
Console.WriteLine((e.AlarmText + ControlChars.Cr))
If Not e.SnoozePressed Then
If e.NumRings Mod 10 = 0 Then
Console.WriteLine(" Let alarm ring? Enter Y")
Console.WriteLine(" Press Snooze? Enter N")
Console.WriteLine(" Stop Alarm? Enter Q")
Dim input As String = Console.ReadLine()
If input.Equals("Y") Or input.Equals("y") Then
Return
Else
If input.Equals("N") Or input.Equals("n") Then
CType(sender, AlarmClock).SnoozePressed = True
Return
Else
CType(sender, AlarmClock).Stop = True
Return
End If
End If
End If
Else
Console.WriteLine(" Let alarm ring? Enter Y")
Console.WriteLine(" Stop Alarm? Enter Q")
Dim input As String = Console.ReadLine()
If input.Equals("Y") Or input.Equals("y") Then
Return
Else
CType(sender, AlarmClock).Stop = True
Return
End If
End If
End Sub
End Class
' The driver class that hooks up the event handling method of
' WakeMeUp to the alarm event of an Alarm object using a delegate.
' In a forms-based application, the driver class is the
' form.
'
Public Class AlarmDriver
Public Shared Sub Main()
' Instantiates the event receiver.
Dim w As New WakeMeUp()
' Instantiates the event source.
Dim clock As New AlarmClock()
' Wires the AlarmRang method to the Alarm event.
AddHandler clock.Alarm, AddressOf w.AlarmRang
clock.Start()
End Sub
End Class
End Namespace
标题名称:vb.net订阅事件的简单介绍
网页URL:http://azwzsj.com/article/hjdcsh.html