189 8069 5689

包含vbnet事件顺序的词条

VB在同个事件中,怎么规定执行先后顺序?

显示图案和播放音频之间加个延时代码。

创新互联公司主营罗源网站建设的网络公司,主营网站建设方案,App定制开发,罗源h5成都微信小程序搭建,罗源网站营销推广欢迎罗源等地区企业咨询

延时代码可以使用Windows API函数Sleep

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()

'显示图案代码

Sleep 1000 '延时1秒

'播放音频代码

End Sub

VB.NET中keypress、keydown、keyup事件有什么区别?e.keychar和e.keycode的区别?

keypress:操作窗格具有焦点并按下某个键时发生,不能由非字符键引发

keydown:按下键盘按键时发生

keyup:键盘按键弹起时发生

以上事件触发的时间不同,顺序 down press up

keychar:按键对应的字符

keycode:获取 KeyDown 或 KeyUp 事件的键盘代码

char不能获取 控制键如tab Insert delete 方向键等

vb.net多个过程handles一个事件

这个执行顺序由.net内部处理和维护

现在我测试了下,如果动态添加delegate的话,那么事件调用就会按照添加的先后顺序来执行

不过在过程里直接用"handles 某个事件"来指定的话,顺序就不一定了,比如我测试你的代码就是3,1,2的循序,和处理过程的名字应该没什么关系

不过事件的处理过程会按照在invocation list里的循序来执行

给你一段代码

Function GetHandlers(ByVal instance As Object, ByVal e As String) As String

Dim pi As PropertyInfo = GetType(Button).GetProperty("Events", BindingFlags.Instance Or BindingFlags.NonPublic)

Dim ehl As EventHandlerList = CType(pi.GetValue(instance, Nothing), EventHandlerList)

Dim fi As FieldInfo = GetType(Control).GetField("Event" e, BindingFlags.Static Or BindingFlags.NonPublic)

Dim d As [Delegate] = ehl(fi.GetValue(Nothing))

Dim handlerStr As String = Nothing

If (d Nothing) Then

For Each i As [Delegate] In d.GetInvocationList()

handlerStr = handlerStr i.Method.Name vbCrLf

Next

Else

handlerStr = "无"

End If

Return handlerStr

End Function

调用gethandlers函数可以得到某个控件的某个事件注册的所有handler,这个顺序就是真正的调用顺序了

但我觉得还是应该不要太过依赖这部分内容,不管是用handles还是addhandler,现在是这样,以后的版本说不定就变成其他了,因为ms并没有对他们有过任何的明文说明

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事件的执行顺序

用下面类似的代码可以看到先后顺序

Private Sub Command1_Click()

Debug.Print "Command1_Click"

End Sub

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Debug.Print "Command1_MouseDown"

End Sub

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Debug.Print "Command1_MouseUp"

End Sub

-------------------------

下面的程序运行时SW的值初始是False,所以不会print。你先点击一下窗体,再点command1就会输出了


当前文章:包含vbnet事件顺序的词条
网页路径:http://cdxtjz.cn/article/dsiecch.html

其他资讯