999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通過Visual Basic編程實現多種按鈕效果

2008-04-12 00:00:00楊戰海薛寧靜
現代電子技術 2008年6期

摘 要:命令按鈕是用戶與計算機應用程序進行交互的最簡便的方法。面向對象編程語言Visual Basic中的按鈕控件就是命令按鈕,命令按鈕是應用程序中最為常用的控件,但是Visual Basic中的按鈕控件過于簡單,不夠美觀,支持的事件少。為實現多彩多姿命令按鈕,可以利用圖像框裝載漂亮的圖片模擬命令按鈕,通過事件過程實現“命令按鈕”的多種特殊效果,包括按鈕的默認效果、鼠標劃過時按鈕的效果、鼠標單擊時按鈕的效果,按擊回車鍵或逃逸鍵時按鈕的效果。在實際編程中,設計好具有多種效果的按鈕,是能否贏得用戶的一件法寶。

關鍵詞:按鈕;圖像框;屬性;事件;事件代碼;事件過程

中圖分類號:TP311 文獻標識碼:B

文章編號:1004-373X(2008)06-114-03

Various Button Effects by Visual Basic Programming

YANG Zhanhai,XUE Ningjing

(Computer Center,Yan′an University,Yan′an,716000,China)

Abstract:Order button is a consumer and the computer application carries out interactive simple and convenient method.The button control in object-oriented programming language Visual Basic is order button,order button is to be control in common use most in application,button control in Visual Basic is excessively simple,the event being not enough beautiful,hold out is few.Be to realize colorful order button,making use of the image frame to load the beautiful photograph to simulate order button,the button effect,pushes down the effect striking the carriage return key or the escape key time button by the fact that event process realizes various peculiar \"order button\" effect,when button effect,mouse are labeled with Shan strike when effect,the mouse bid streak including the button tacitly approving that.

Keywords:button;image frame;attribute;event;event code;event process

1 引 言

在進行程序設計時,經常需要設計一些形象的、生動的、漂亮的按鈕,更重要的是按鈕在操作上有動態的效果。按鈕通常的狀態有默認狀態、鼠標劃過時的狀態、鼠標單擊時的狀態、按ESC鍵時的狀態、按Enter鍵時的狀態。

如何實現多種效果的命令按鈕,通過Visual Basic編程有各種實現辦法,但如果直接在窗體上創建命令按鈕對象,要實現多種按鈕效果并不容易。例如,Visual Basic提供的命令按鈕外觀是一個矩形,若要實現立體圓柱狀的按鈕,則不容易。在實際編程中,總結經驗,發現使用圖像框去實現按鈕更為自如,更為順手,各種按鈕效果易于實現。

2 對象準備

2.1 圖像按鈕的準備

預先用圖形處理軟件(如Photoshop)制作所需求的圖像按鈕文件。本文中制作4個圖形文件,分別命名為“P1.JPG”,“P2.JPG”,“P3.JPG”,“P4.JPG”,每個圖形的尺寸大小一致,外觀均呈圓柱立體狀。圖形“P1.JPG”中顯示黑暗顏色文字“退出系統”;圖形“P2.JPG”中顯示明亮顏色文字;圖形“3.JPG”中顯示黑暗顏色文字“開始登錄”;圖形“P4.JPG”中顯示明亮顏色文字“開始登錄”。

一個系統經常具有“退出系統”和“開始登錄”這2個按鈕。用“P1.JPG”和“P2.JPG”兩個圖片實現“退出系統”這個按鈕;用“P3.JPG”和“P4.JPG”兩個圖片實現“退出系統”這個按鈕,不同的顏色表示不同的狀態。

2.2 圖像框的準備

窗體是Visual Basic中的對象,在設計程序時,窗體是程序員的“工作臺”,窗體好像一塊“畫布”,在窗體上可以建立其他控件對象,程序運行后,每個窗體對應一個窗口。

在窗體畫出4個圖像框,名稱分別為“Image1”,“Image2”,“Image3”,“Image4”。圖像框“Image1”裝入圖形“P1.JPG”(黑暗顏色文字“退出系統”),圖像框“Image2”裝入圖形“P2.JPG”(明亮顏色文字“退出系統”),圖像框“Image3”裝入圖形“P3.JPG”(黑暗顏色文字“開始登錄”),圖像框“Image4”裝入圖形“P4.JPG”(明亮顏色文字“開始登錄”)。

設定圖像框的尺寸為統一大小。首先把圖片框Stretch屬性為True,以實現當圖像框大小改變時,其中的圖片隨之會自動改變大小以適應圖像框的空間大小。接下來通過圖像框Height和Width屬性去改變圖像框的高度和寬度,把4個圖像框的屬性設為統一的屬性值,從而實現圖像框的尺寸為一樣的大小。

設定圖像框的合理位置。在垂直方向上,若要求4個圖像框處在同樣的高度上,可以通過設置Top屬性實現,也可以通過菜單命令實現(首先選擇4個圖像框對象,然后選擇“格式”菜單,再選擇“對齊”項中的“頂端對齊”命令項);在水平方向上,圖像框“Image1”和“Image2”處于同一位置上,一個在前,一個在后,圖像框“Image3”和“Image4”處于同一位置上,也是一個在前,一個在后,可以通過設置Left屬性實現,也可以通過菜單命令實現(首先選擇同一位置上的2個圖像框對象,然后選擇“格式”菜單,再選擇“對齊”項中的“左對齊”命令項)。

3 用事件過程實現多種按鈕效果

3.1 按鈕的默認狀態

通常,對于“退出系統”和“開始登錄”這樣的兩個按鈕,“開始登錄”一般為事實上的下一步操作。所以不妨把圖片框“Image1”可見性設為真,把圖片框“Image2”可見性設為假,即可以看見黑暗顏色文字“退出系統”按鈕;把圖片框“Image3”可見性設為假,把圖片框“Image4”可見性設為真,即可以看見明亮顏色文字“開始登錄”按鈕。

默認狀態是在窗體運行時,一開始就需要具有的狀態。對于Visual Basic而言,窗體的Load事件在窗體加載就會觸發的其中的事件代碼,所以可以在窗體的Load事件中編寫事件代碼,實現按鈕初始默認狀態。

實現“按鈕”默認狀態的Load事件過程為:

Private Sub Form_Load()

Image1.Visible = True

Image2.Visible = False

Image3.Visible = False

Image4.Visible = True

End Sub

3.2 鼠標劃過時按鈕的狀態

當鼠標光標移入“退出系統”按鈕所在的區域時,“退出系統”按鈕中的文字改變為明亮顏色,“開始登錄”按鈕中的文字改變為黑暗顏色;而當鼠標光標移入“開始登錄”按鈕所在的區域時,“開始登錄”按鈕中的文字改變為明亮顏色,“退出系統”按鈕中的文字改變為黑暗顏色。這種明暗交替的醒目設計,極具藝術性。通過交替改變各個對像框Visual屬性,就可以實現鼠標劃過“按鈕”(實際上對象是圖像框)時的狀態。

圖像框支持移動鼠標光標的移動事件過程,即支持MouseMove事件,該事件并不需要鼠標的按鍵,只需要把鼠標光標移到圖像框后,便可以觸發MouseMove事件。

實現“退出系統”按鈕變明,“開始登錄”按鈕變暗的事件過程為:

Private Sub Image1_MouseMove(Button As Integer,Shift As Integer,x As Single,y As Single)

Image1.Visible = False

Image2.Visible = True

Image3.Visible = True

Image4.Visible = False

End Sub

實現“開始登錄”按鈕變明,“退出系統”按鈕變暗的事件過程為:

Private Sub Image3_MouseMove(Button As Integer,Shift As Integer,x As Single,y As Single)

Image1.Visible = True

Image2.Visible = False

Image3.Visible = False

Image4.Visible = True

End Sub

3.3 鼠標單擊時按鈕的狀態

鼠標單擊按鈕后,往往實現某一過程的調用,但在里,將討論按鈕被按單擊時, “壓下”效果的實現,以及松開鼠標按鍵時按鈕“彈上”效果的實現。下面就以按鈕“開始登錄”為例說明效果實現的原理機制。

移動鼠標光標到圖像框“Image4” (明亮顏色文字“開始登錄”)上,如果壓下鼠標按鈕則產生MouseDown事件;如果松開鼠標按鈕則產生MouseUp事件。

接下來關鍵的問題是如何實現“壓下”效果和“彈上”效果。可以通過改變圖像框在窗體中位置的方法實現預期的效果,當壓下鼠標按鈕時,給圖像框的Top增加100twip,當松開鼠標按鈕時,給圖像框的屬性Top減少100twip。通過這種改變圖像框Top屬性值方法,“按鈕”將來就可以按動。

用于實現“開始登錄”單擊的事件過程為:

Private Sub Image4_Click()

′ 調用“開始登錄”代碼

End Sub

用于實現“壓下”效果的事件過程為:

Private Sub Image4_MouseDown (Button As Integer,Shift As Integer,x As Single,y As Single)

Image4.Top = Image4.Top + 100

End Sub

用于實現“彈上”效果的事件過程為:

Private Sub Image4_MouseUp (Button As Integer,Shift As Integer,x As Single,y As Single)

Image4.Top = Image4.Top - 100

End Sub

3.4 按Esc鍵和Enter鍵時按鈕的反應

一個良好的窗體界面,其上的按鈕不僅可以用鼠標來選擇操作,也可以支持鍵盤的操作。下面,就以按Esc鍵退出系統,按Enter鍵開始登錄為例進行分析討論。

按下鍵盤上某個鍵時,將發生KeyPress事件。嚴格的說,當按下某個鍵時,所觸發的是擁有輸入焦點(Focus)的那個控件的KeyPress事件。在某一時刻,輸入焦點只能位于某一個控件上。如果窗體上沒有活動的或可見的控件,則輸入焦點位于窗體上。當一個控件或窗體擁有輸入焦點,該控件或窗體將接收從鍵盤上輸入的信息。

在默認情況下,控件的鍵盤事件優于窗體的鍵盤事件。因此在發生鍵盤時,總是先激活控件的鍵盤事件。如果希望窗體先接收鍵盤事件,則必須把窗體的KeyPreview屬性設為True,否則不能激活鍵盤事件。

這里,在任何情況下,都要實現按Esc鍵退出系統,按Enter鍵開始登錄,所以必須把窗體的KeyPreview屬性設為True。另外,在編寫事件代碼時,需要注意參數KeyAscii是一個預定義的變量,執行KeyPress事件過程時,KeyAscii是所按鍵的ASCII值。已知Esc鍵的ASCII值為27,Enter鍵的ASCII值為13,那么,就可以通過KeyAscii的值是否為27或13做出相應的判斷。

實現Esc鍵和Enter鍵按鈕的反應的KeyPress事件過程如下:

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Call Image4_Click

End If

If KeyAscii = 27 Then

Call Image1_Click

End If

End Sub

4 結 語

使用Visual Basic這一面向對象編程語言,編寫程序界面時,充分利用對象的Load,Click,MouseDown,MouseUp以及KeyPress事件,綜合構建,從而實現具有多種效果的界面按鈕。

設計具有多種效果的按鈕,是實現友好界面的重要環節,是能否贏取用戶的一門法寶,在實際編程中,應該根據用戶需求,設計好具有多種效果的按鈕。

參考文獻

[1]劉炳文.Visual Basic程序設計[M].2版.北京:清華大學出版社,2003.

[2]吳紹根,陳建潮.Visual Basic程序設計基礎[M].北京:人民郵電出版社,2006.

[3]\\[美\\]Diane Zak.Visual Basic 6.0程序設計[M].北京:電子工業出版社,2007.

[4]\\[美\\]布蘭德妮,\\[美\\]米爾斯博格.VB.NET大學教程[M].北京:清華大學出版社,2004.

作者簡介 楊戰海 男,1972年出生,陜西涇陽人,講師,碩士研究生。研究方向為計算機算法、數據庫技術。

薛寧靜 女,1978年出生,講師。研究方向為計算機網絡。

主站蜘蛛池模板: 亚洲激情99| 日韩欧美亚洲国产成人综合| 国产福利大秀91| 欧美爱爱网| 精品国产香蕉伊思人在线| 国产麻豆va精品视频| 视频二区欧美| 成人福利在线观看| 欧美一级高清片欧美国产欧美| 青草娱乐极品免费视频| 精品免费在线视频| 美美女高清毛片视频免费观看| 高清免费毛片| 波多野结衣亚洲一区| Aⅴ无码专区在线观看| 午夜一级做a爰片久久毛片| 国产黄网永久免费| 亚洲三级电影在线播放| 亚洲中文字幕手机在线第一页| 色哟哟精品无码网站在线播放视频| 亚洲色图在线观看| 欧美日本激情| 国产簧片免费在线播放| 手机精品视频在线观看免费| 97精品伊人久久大香线蕉| 国产精品毛片在线直播完整版| 色视频国产| 久久久久亚洲精品成人网| 天天激情综合| 国产美女在线观看| 久久精品日日躁夜夜躁欧美| 又污又黄又无遮挡网站| 久久这里只有精品66| 国产情侣一区| 国产主播喷水| 国产男人天堂| 毛片基地视频| 成人无码一区二区三区视频在线观看| 毛片在线区| 欧美亚洲中文精品三区| 99视频国产精品| 亚洲国产精品一区二区第一页免| 亚洲妓女综合网995久久| 国产精品成人免费综合| 日韩在线视频网站| 日韩免费无码人妻系列| 国产91av在线| 亚洲伦理一区二区| 亚洲永久色| 中文字幕无线码一区| 国产精品亚洲日韩AⅤ在线观看| 国产色图在线观看| 亚洲国产欧美国产综合久久| 欧美国产中文| 亚洲成人精品久久| 国产人前露出系列视频| 91在线中文| 日韩免费毛片| 手机在线看片不卡中文字幕| 亚洲狠狠婷婷综合久久久久| 欧美日韩资源| 国产视频一区二区在线观看| 国产精品白浆无码流出在线看| 久久久久青草线综合超碰| 一级看片免费视频| 九九香蕉视频| igao国产精品| 亚洲人妖在线| yy6080理论大片一级久久| 色综合久久88| 国产色爱av资源综合区| 亚洲男人的天堂网| 久久久久久尹人网香蕉| 波多野结衣视频网站| 亚卅精品无码久久毛片乌克兰| 久久婷婷五月综合97色| 午夜高清国产拍精品| 九九九久久国产精品| 亚洲人成网站在线观看播放不卡| 国产成人免费高清AⅤ| 欧美午夜一区| 欧美精品一区在线看|