1.定义变量记录键是否被按下,按下的累计时间
创新互联于2013年创立,先为金湖等服务建站,金湖等地企业,进行企业商务咨询服务。为金湖企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
Dim 按下A键 As Boolean
Dim 按下A键时间 As Integer
2.添加一个TextBox1用于接收键盘事件,或者直接用窗体的键盘事件(确保KeyPreview为True)
在KeyDown事件中添加如下代码:
If e.Keycode = keys.A Then 按下A键 = True
在KeyUp事件中添加如下代码:
If e.Keycode = keys.A Then 按下A键 = False
3.添加一个Timer1控件,调整Timer1的Interval来决定按键频率,记得要把Timer1.Enable开启
在Tick事件中添加如下代码:
If 按下A键 = True
按下A键时间+=1
Call 音量设置(按下A键时间 * 10)
End If
PS: 按下的秒数 = 按下A键时间*Timer1.Interval / 1000
名称
说明
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 继承。)
一个一个回答吧。
1、CheckBox 的 MouseDown 事件发生在 CheckedChange 事件之前,但这是指在单步调试的状态下,事实上在编译好的程序中,这两个事件是分别处在两个不同的线程中,单纯的考虑时间上的前后没有意义。
2、MouseDown 在先。Scroll 事件发生在滚动条移动的过程中,而 ValueChange 事件发生在滚动条的 Value 属性发生改变的时候,两者没有必然联系。举例,当你用鼠标拖动滚动条移动的时候,这时发生的是 Scroll 事件;松开鼠标键后,Value 属性值改变,这时候触发 ValueChange 事件。另外,如果滚动条的 Value 是通过代码改变的而非鼠标拖动的,是不触发 Scroll 事件只触发 ValueChange 事件。
3、ClientSize 是指控件的工作区的高度和宽度。比如说 form,它的 Size 值是包括标题栏、边框等,而 ClientSize 是工作区,不包括标题栏、边框等。
4、一般是 Load→Paint→Shown。
首先:
textbox里没有显示,是因为SerialPort1和TextBox2不是同一线程创建的,需要跨线程操作。需要用到委托,这样才能显示出来。
其次:
我觉得用串口的接收数据事件更好一些。
下面代码供参考:
'----------------------
'串口接收数据事件,其实比用定时器更好,
'触发事件的条件可以自己在form_load中设置ReceivedBytesThreshold属性数值,默认为ReceivedBytesThreshold=1
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim strRecvData As String = ""
strRecvData = SerialPort1.ReadExisting
Call disPlayComData(strRecvData)
End Sub
Delegate Sub callback(ByVal strT As String) '定义委托
Sub showString(ByVal comdata As String) '显示结果
Me.TextBox1.Text = "结果:" comdata
End Sub
Sub disPlayComData(ByVal strTmp As String) '判定是否为跨线程
If Me.TextBox1.InvokeRequired Then
Dim d As New callback(AddressOf showString)
Me.Invoke(d, New Object() {strTmp})
Else
Me.TextBox1.Text = strTmp
End If
End Sub