“確定”和“取消”是兩個很籠統(tǒng)的詞,電腦再智能,它也不可能知道你腦子里想要的“確定”或“取消”究竟是什么樣的效果以及實現(xiàn)的步驟。所以你肯定要通過編程告知電腦“確定”時要做什么,“取消”時又要做什么。VB給按鈕增加Default和Cancel屬性,是為了讓按鈕與鍵盤建立快捷聯(lián)系,并不是說只要把按鈕的Default或Cancel屬性設(shè)為True,按鈕就自動具有“確認”或“取消”功能了,真是這樣的話,那編程就太簡單啦!
成都創(chuàng)新互聯(lián)公司主營頭屯河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),頭屯河h5微信小程序開發(fā)搭建,頭屯河網(wǎng)站營銷推廣歡迎頭屯河等地區(qū)企業(yè)咨詢
其實,Default的意思是“默認”,當窗體上有多個按鈕同時存在時,如果其中某個按鈕的Default屬性設(shè)為True,它就成為“默認按鈕”。而幾乎所有人都習(xí)慣把回車鍵作為執(zhí)行鍵(就像火箭發(fā)射時的點火按鈕),因此當按下回車鍵時,程序就會自動觸發(fā)這個“默認按鈕”,相當于你用鼠標點擊了這個按鈕,但是,具體要執(zhí)行什么仍然是需要你在這個按鈕的事件過程(一般是Click事件)中進行編程的。
同理,Cancel表示“取消”,通常人們都習(xí)慣用Esc鍵來表示取消某種操作,因此VB就通過Cancel屬性把某個按鈕與Esc鍵建立聯(lián)系,按Esc鍵就相當于點擊了這個按鈕。當然,具體要“取消”什么(關(guān)閉窗體、取消修改等)是要你通過編程才能實現(xiàn)的,甚至乎可以與“取消”完全不沾邊!
一個按鈕同時把Default和Cancel屬性都設(shè)為True是可以的,這樣的話,按回車鍵會觸發(fā)這個按鈕,按Esc鍵也會觸發(fā)這個按鈕。
但是,在同一個窗體中,最多只能有一個按鈕的Default屬性設(shè)為True,Cancel屬性也一樣。
將窗體的屬性KeyPreview設(shè)置為True:
Option
Explicit
Private
Sub
Form_KeyPress(KeyAscii
As
Integer)
If
KeyAscii
=
27
Then
'如果按的鍵是Esc,
End
'那么退出程序
End
If
End
Sub
Private
Sub
Form_Load()
Me.KeyPreview
=
True
End
Sub
樓上說的不錯,方法最簡單,最容易理解...
另外,也可以設(shè)置Form的KeyPreview屬性為True,用Form的KeyPress事件來做:
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
Call Command1_Click
Case 27
Call Command2_Click
Case Else
End Select
End Sub
當然,用API來做也是可以的...
看自己喜歡了...
窗體上有個按鈕就的cancel屬性為true,并且這個按鈕的點擊事件中
代碼
是關(guān)閉窗體。
照你說的有兩種情況
1.設(shè)置窗體的acceptbutton屬性為button1 ,就能 使回車相當于button1,
但是esc無法設(shè)置
2.獲取按鍵,若為keys.enter ,調(diào)用button1的事件處理函數(shù)
若為keys。escape 調(diào)用button2
sendkeys
vbs SendKey用法
簡單說,這個命令就是模擬鍵盤操作,將一個或多個按鍵指令發(fā)送到指定Windows窗口來控制應(yīng)用程序運行,其使用格式為:
object.SendKeys string
"object":表示W(wǎng)shShell對象
"string":表示要發(fā)送的按鍵指令字符串,需要放在英文雙引號中.
1.基本鍵
一般來說,要發(fā)送的按鍵指令都可以直接用該按鍵字符本身來表示,例如要發(fā)送字母"x",使用
WshShell.SendKeys "x" 即可.
也可直接發(fā)送多個按鍵指令,只需要將按鍵字符按順序排列在一起即可.例如,要發(fā)送按鍵"cfan",可以使用" WshShell.SendKeys "cfan" ".
2.特殊功能鍵
對于需要與Shift、Ctrl、Alt三個控制鍵組合的按鍵SendKeys使用特殊字符來表示:
特殊控制鍵 特殊字符
Shift +
Ctrl ^
Alt %
如要發(fā)送的組合按鍵是同時按下Ctrl+E,需要用" WshShell.SendKeys "^e" "表示,
如果要發(fā)送的組合按鍵是按住Ctrl鍵的同時按下E與C兩個鍵,這時應(yīng)使用小括號把字母括起來,書寫格式為" WshShell.SendKeys "^(ec)" ".這里要注意它與" WshShell.SendKeys "^ec" "的區(qū)別,后者表示組合按鍵是同時按住Ctrl和E鍵,然后松開Ctrl鍵,單獨按下"C"字母鍵
由于"+"、"^"這些字符用來表示特殊的控制按鍵了,如何表示這些按鍵呢?只要用大括號括住這些字符即可.例如,要發(fā)送加號"+",可使用" WshShell.SendKeys "" ".另外對于一些不會生成字符的控制功能按鍵,也同樣需要使用大括號括起來按鍵號名稱,例如要發(fā)送回車鍵,需要用" WshShell.SendKeys "" "表示,發(fā)送向下的方向鍵用" WshShell.SendKeys "" "表示.
小提示
如果需要發(fā)送多個重復(fù)的單字母按鍵,不必重復(fù)輸入該字母,SendKdys允許使用簡化格式進行描述,使用格式為"".例如要發(fā)送10個字母"x",則輸入" WshShell.SendKeys "" "即可.
3.翻譯上手實例
" WshShell.SendKeys "^u" "這句翻譯為:按下Ctrl+Esc組合鍵(相當于按Win鍵)打開"開始"菜單,按著按U鍵打開"關(guān)機"菜單.
---Just Do It---------------------------------
讓VBS腳本自動在詞本中輸入一行文字"Hello, welcome to cfan".
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate " 無標題 - 記事本 "
WshShell.SendKeys "hello, welcome to cfan"
我們最常用的記事本沒有Word、WPS那樣的自動定時存盤功能,其實利用VBS腳本再加上SendKeys命令,就能彌補這個遺憾.打開記事本,輸入以下內(nèi)容(以容易描述和分析,把代碼分為四個部分):
'第一部分:定義變量和對象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=300000
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("請輸入你要創(chuàng)建的文件名(不能用中文和純數(shù)字):")
'第二部分:打開并激活記事本
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "無標題 - 記事本"
'第三部分:用輸入的文件名存盤
WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime
'第四部分:自動定時存盤
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
Wend
WScript.Quit
將其保存為記事本.vbs,以后要使用記事本時,都通過雙擊這個腳本文件來打開.
程序翻譯
這個腳本的基本思路是定時向記事本發(fā)送Ctrl+S這個存盤組合鍵.
第一部分:定義了腳本中需要用到的變量和對象."AutoSaveTime"變量用來設(shè)置自動存盤間隔,單位為毫秒,這里設(shè)置為5分鐘."TXTFileName"變量通過輸入框取得你要創(chuàng)建的文本文件名稱.
第二部分:運行記事本,對于Windows本身提供的程序,比如計算器等,可直接在"WshShell.Run"后輸入程序名稱,如"calc"對于非系統(tǒng)程序,則可輸入完全路徑,但要注意使用8.3格式輸入,比如" "D:\Progra~1\Tencent\QQ.exe" "
第三部分:這里用SendKeys命令執(zhí)行了這樣的操作流程(請注意每個操作之間延時命令的使用):
在記事本中按Ctrl+S組合鍵→彈出保存文件的窗口→輸入文件名→按Alt+S組合鍵進行保存(默認保存在"我的文檔"目錄).
第四部分:定時存盤的關(guān)鍵,通過"While......Wend"這個當條件為"真"時循環(huán)命令,實現(xiàn)自動存盤代碼" WshShell.SendKeys "^s" "和定時代碼" WScript.Sleep AutoSaveTime "的重復(fù)執(zhí)行.因為不能讓這個定時存盤循環(huán)一直執(zhí)行,退出記事本后,必須自動退出腳本并結(jié)束循環(huán),所以設(shè)計了一個循環(huán)判斷條件" WshShell.AppActivate TXTFileName=True ",當記事本運行中時,可以激活記事本窗口,這個條件運行結(jié)果為"True",定時存盤循環(huán)一直執(zhí)行,退出記事本后,腳本無法激活記事本窗口,就會路出循環(huán),執(zhí)行"Wend"后面的"WScript.Quit"退出腳本.
---Just Do It---------------------------------
有款軟件叫"QQ多賬號自動登錄器",它有記住QQ賬號和密碼,從而幫你用指定QQ號碼自動登錄,特別適合有多個QQ賬號的朋友.其實利用VBS腳本你完全可以DIY一個.請到下載腳本實例.其中有一個雙QQ號碼自動登錄的腳本,請對照其中的解釋將其修改為適合自己的QQ自動登錄腳本.
請制作一個腳本,在你復(fù)制了一段文字后,只要雙擊運行這個腳本,就會自動打開記事本,并自動將復(fù)制的文字粘貼進來.
-----------------------------------------------
VBS中Sendkey鍵盤對應(yīng)的碼表
Key Code
------------------------------
Shift +
Ctrl ^
Alt %
BACKSPACE , , or
BREAK
CAPS LOCK
DEL or DELETE or
DOWN ARROW
END
ENTER or ~
ESC
HELP
HOME
INS or INSERT or
LEFT ARROW
NUM LOCK
PAGE DOWN
PAGE UP
PRINT SCREEN
RIGHT ARROW
SCROLL LOCK
TAB
UP ARROW
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
新聞名稱:vb.net窗體esc vbs 窗體
地址分享:http://chinadenli.net/article4/dodcdoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站制作、網(wǎng)站設(shè)計、全網(wǎng)營銷推廣、Google、關(guān)鍵詞優(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)