1.定義變量記錄鍵是否被按下,按下的累計時間
創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為金湖等服務(wù)建站,金湖等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為金湖企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
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控件,調(diào)整Timer1的Interval來決定按鍵頻率,記得要把Timer1.Enable開啟
在Tick事件中添加如下代碼:
If?按下A鍵?=?True
按下A鍵時間+=1
Call?音量設(shè)置(按下A鍵時間?*?10)
End?If
PS:?按下的秒數(shù) =?按下A鍵時間*Timer1.Interval / 1000
名稱
說明
Activated
當使用代碼激活或用戶激活窗體時發(fā)生。
AutoSizeChanged
當?AutoSize?屬性更改時發(fā)生。
AutoValidateChanged
當?AutoValidate?屬性更改時發(fā)生。
BackColorChanged
當?BackColor?屬性的值更改時發(fā)生。(從?Control?繼承。)
BackgroundImageChanged
當?BackgroundImage?屬性的值更改時發(fā)生。(從?Control?繼承。)
BackgroundImageLayoutChanged
當?BackgroundImageLayout?屬性更改時發(fā)生。(從?Control?繼承。)
BindingContextChanged
當?BindingContext?屬性的值更改時發(fā)生。(從?Control?繼承。)
CausesValidationChanged
當?CausesValidation?屬性的值更改時發(fā)生。(從?Control?繼承。)
ChangeUICues
焦點或鍵盤用戶界面 (UI) 提示更改時發(fā)生。(從?Control?繼承。)
Click
在單擊控件時發(fā)生。(從?Control?繼承。)
ClientSizeChanged
當?ClientSize?屬性的值更改時發(fā)生。(從?Control?繼承。)
Closed
關(guān)閉窗體時發(fā)生。
Closing
關(guān)閉窗體時發(fā)生。
ContextMenuChanged
當?ContextMenu?屬性的值更改時發(fā)生。(從?Control?繼承。)
ContextMenuStripChanged
當?ContextMenuStrip?屬性的值更改時發(fā)生。(從?Control?繼承。)
ControlAdded
在將新控件添加到?Control.ControlCollection?時發(fā)生。(從?Control?繼承。)
ControlRemoved
在從?Control.ControlCollection?移除控件時發(fā)生。(從?Control?繼承。)
CursorChanged
當?Cursor?屬性的值更改時發(fā)生。(從?Control?繼承。)
Deactivate
當窗體失去焦點并不再是活動窗體時發(fā)生。
Disposed
當通過調(diào)用?Dispose?方法釋放組件時發(fā)生。(從?Component?繼承。)
DockChanged
當?Dock?屬性的值更改時發(fā)生。(從?Control?繼承。)
DoubleClick
在雙擊控件時發(fā)生。(從?Control?繼承。)
DragDrop
拖放操作完成時發(fā)生。(從?Control?繼承。)
DragEnter
在將對象拖入控件的邊界時發(fā)生。(從?Control?繼承。)
DragLeave
將對象拖出控件的邊界時發(fā)生。(從?Control?繼承。)
DragOver
在將對象拖到控件的邊界上發(fā)生。(從?Control?繼承。)
EnabledChanged
在?Enabled?屬性值更改后發(fā)生。(從?Control?繼承。)
Enter
進入控件時發(fā)生。(從?Control?繼承。)
FontChanged
在?Font?屬性值更改時發(fā)生。(從?Control?繼承。)
ForeColorChanged
在?ForeColor?屬性值更改時發(fā)生。(從?Control?繼承。)
FormClosed
關(guān)閉窗體后發(fā)生。
FormClosing
關(guān)閉窗體前發(fā)生。
GiveFeedback
在執(zhí)行拖動操作期間發(fā)生。(從?Control?繼承。)
GotFocus
在控件接收焦點時發(fā)生。(從?Control?繼承。)
HandleCreated
在為控件創(chuàng)建句柄時發(fā)生。(從?Control?繼承。)
HandleDestroyed
在控件的句柄處于銷毀過程中時發(fā)生。(從?Control?繼承。)
HelpButtonClicked
單擊“幫助”按鈕時發(fā)生。
HelpRequested
用戶請求控件幫助時發(fā)生。(從?Control?繼承。)
ImeModeChanged
在?ImeMode?屬性更改后發(fā)生。(從?Control?繼承。)
InputLanguageChanged
更改窗體的輸入語言后發(fā)生。
InputLanguageChanging
當用戶嘗試更改窗體的輸入語言時發(fā)生。
Invalidated
控件的顯示要求重新繪制時發(fā)生。(從?Control?繼承。)
KeyDown
在控件有焦點的情況下按下鍵時發(fā)生。(從?Control?繼承。)
KeyPress
在控件有焦點的情況下字符、空格或退格鍵時發(fā)生。(從?Control?繼承。)
KeyUp
在控件有焦點的情況下釋放鍵時發(fā)生。(從?Control?繼承。)
Layout
在控件應重新定位其子控件時發(fā)生。(從?Control?繼承。)
Leave
在輸入焦點離開控件時發(fā)生。(從?Control?繼承。)
Load
在第一次顯示窗體前發(fā)生。
LocationChanged
在?Location?屬性值更改后發(fā)生。(從?Control?繼承。)
LostFocus
在控件失去焦點時發(fā)生。(從?Control?繼承。)
MarginChanged
當?Margin?屬性更改時發(fā)生。
MaximizedBoundsChanged
在?MaximizedBounds?屬性的值更改后發(fā)生。
MaximumSizeChanged
在?MaximumSize?屬性的值更改后發(fā)生。
MdiChildActivate
在多文檔界面 (MDI) 應用程序內(nèi)激活或關(guān)閉 MDI 子窗體時發(fā)生。
MenuComplete
當窗體菜單失去焦點時發(fā)生。
MenuStart
當窗體菜單接收焦點時發(fā)生。
MinimumSizeChanged
在?MinimumSize?屬性的值更改后發(fā)生。
MouseCaptureChanged
當控件失去鼠標捕獲時發(fā)生。(從?Control?繼承。)
MouseClick
用鼠標單擊控件時發(fā)生。(從?Control?繼承。)
MouseDoubleClick
用鼠標雙擊控件時發(fā)生。(從?Control?繼承。)
MouseDown
當鼠標指針位于控件上并按下鼠標鍵時發(fā)生。(從?Control?繼承。)
MouseEnter
在鼠標指針進入控件時發(fā)生。(從?Control?繼承。)
MouseHover
在鼠標指針停放在控件上時發(fā)生。(從?Control?繼承。)
MouseLeave
在鼠標指針離開控件時發(fā)生。(從?Control?繼承。)
MouseMove
在鼠標指針移到控件上時發(fā)生。(從?Control?繼承。)
MouseUp
在鼠標指針在控件上并釋放鼠標鍵時發(fā)生。(從?Control?繼承。)
MouseWheel
在控件有焦點且鼠標輪移動時發(fā)生。(從?Control?繼承。)
Move
在移動控件時發(fā)生。(從?Control?繼承。)
PaddingChanged
在控件空白區(qū)更改時發(fā)生。(從?Control?繼承。)
Paint
在重繪控件時發(fā)生。(從?Control?繼承。)
ParentChanged
在?Parent?屬性值更改時發(fā)生。(從?Control?繼承。)
PreviewKeyDown
在焦點位于此控件上的情況下,當有按鍵動作時發(fā)生(在?KeyDown?事件之前發(fā)生)。(從Control?繼承。)
QueryAccessibilityHelp
在?AccessibleObject?為輔助功能應用程序提供幫助時發(fā)生。(從?Control?繼承。)
QueryContinueDrag
在拖放操作期間發(fā)生,并且允許拖動源確定是否應取消拖放操作。(從?Control?繼承。)
RegionChanged
當?Region?屬性的值更改時發(fā)生。(從?Control?繼承。)
Resize
在調(diào)整控件大小時發(fā)生。(從?Control?繼承。)
ResizeBegin
窗體進入大小調(diào)整模式時發(fā)生。
ResizeEnd
窗體退出大小調(diào)整模式時發(fā)生。
RightToLeftChanged
在?RightToLeft?屬性值更改時發(fā)生。(從?Control?繼承。)
RightToLeftLayoutChanged
更改?RightToLeftLayout?屬性值之后發(fā)生。
Scroll
用戶或代碼滾動工作區(qū)時發(fā)生。(從?ScrollableControl?繼承。)
Shown
只要窗體是首次顯示就發(fā)生。
SizeChanged
在?Size?屬性值更改時發(fā)生。(從?Control?繼承。)
StyleChanged
在控件樣式更改時發(fā)生。(從?Control?繼承。)
SystemColorsChanged
系統(tǒng)顏色更改時發(fā)生。(從?Control?繼承。)
TabIndexChanged
此 API 支持 產(chǎn)品 基礎(chǔ)結(jié)構(gòu),不能在代碼中直接使用。?當?TabIndex?屬性的值更改時發(fā)生。
TabStopChanged
當?TabStop?屬性更改時發(fā)生。
TextChanged
在?Text?屬性值更改時發(fā)生。(從?Control?繼承。)
Validated
在控件完成驗證時發(fā)生。(從?Control?繼承。)
Validating
在控件驗證時發(fā)生。(從?Control?繼承。)
VisibleChanged
在?Visible?屬性值更改時發(fā)生。(從?Control?繼承。)
一個一個回答吧。
1、CheckBox 的 MouseDown 事件發(fā)生在 CheckedChange 事件之前,但這是指在單步調(diào)試的狀態(tài)下,事實上在編譯好的程序中,這兩個事件是分別處在兩個不同的線程中,單純的考慮時間上的前后沒有意義。
2、MouseDown 在先。Scroll 事件發(fā)生在滾動條移動的過程中,而 ValueChange 事件發(fā)生在滾動條的 Value 屬性發(fā)生改變的時候,兩者沒有必然聯(lián)系。舉例,當你用鼠標拖動滾動條移動的時候,這時發(fā)生的是 Scroll 事件;松開鼠標鍵后,Value 屬性值改變,這時候觸發(fā) ValueChange 事件。另外,如果滾動條的 Value 是通過代碼改變的而非鼠標拖動的,是不觸發(fā) Scroll 事件只觸發(fā) ValueChange 事件。
3、ClientSize 是指控件的工作區(qū)的高度和寬度。比如說 form,它的 Size 值是包括標題欄、邊框等,而 ClientSize 是工作區(qū),不包括標題欄、邊框等。
4、一般是 Load→Paint→Shown。
首先:
textbox里沒有顯示,是因為SerialPort1和TextBox2不是同一線程創(chuàng)建的,需要跨線程操作。需要用到委托,這樣才能顯示出來。
其次:
我覺得用串口的接收數(shù)據(jù)事件更好一些。
下面代碼供參考:
'----------------------
'串口接收數(shù)據(jù)事件,其實比用定時器更好,
'觸發(fā)事件的條件可以自己在form_load中設(shè)置ReceivedBytesThreshold屬性數(shù)值,默認為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) '顯示結(jié)果
Me.TextBox1.Text = "結(jié)果:" 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
文章名稱:vb.net事件觸發(fā)源的簡單介紹
路徑分享:http://jinyejixie.com/article2/dosghic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站維護、自適應網(wǎng)站、電子商務(wù)、關(guān)鍵詞優(yōu)化、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)