老鳥談VB.NET實現(xiàn)全屏幕圖形界面及動態(tài)功能提示
VB.NET經(jīng)過長時間的發(fā)展,很多用戶都很了解VB.NET了,這里我發(fā)表一下個人理解,和大家討論討論關(guān)于VB.NET實現(xiàn)功能。圖形界面是現(xiàn)代軟件中人機(jī)交互的主要手段。為了追求界面的統(tǒng)一和美觀,在軟件開放過程中,圖形界面大多采用全屏幕構(gòu)圖方式。這是通過將窗體的邊框設(shè)置為無邊框(BorderStyle=None),將窗體顯示模式設(shè)置為極大化(WindowState=Maximized)來實現(xiàn)的。
當(dāng)一個窗體界面的設(shè)計中要容納多張圖片和多個控制時,將出現(xiàn)窗體顯示速度明顯變慢的現(xiàn)象,嚴(yán)重影響了程序運(yùn)行的流暢性。為了解決這一問題,在開放過程中,采用了一種將【界面設(shè)計窗體】與【功能實現(xiàn)窗體】分開處理的方法。
一、 VB.NET實現(xiàn)全屏幕圖形界面設(shè)計
在【界面設(shè)計窗體】中,首先按功能的需要和界面設(shè)計的創(chuàng)意,將所需的大量圖片和控制在屏幕上安排好,選擇美觀的字體、顏色、線型,對屏幕界面進(jìn)行設(shè)計、修飾加工;然后在其全屏幕運(yùn)行的狀態(tài)下,利用剪貼技術(shù),將這一設(shè)計完成的圖形界面全屏幕復(fù)制到剪貼板上;接著將這一屏幕映象作為一張圖片粘貼在【功能實現(xiàn)窗體】的背景上。這樣,從外觀上看,兩個窗體的形狀完全相同,而在屏幕的顯示速度上,后者明顯加快。這時,【功能實現(xiàn)窗體】中的控件已變成一個象征性的圖標(biāo),對它的操作,可在控制圖標(biāo)的對應(yīng)位置上設(shè)置一個Image 類型的圖象框,通過對圖象框的操作,來代替原先對控制對象的操作。
采用這種方法,使窗體界面設(shè)計的靈活性大大增加,可以任意發(fā)揮,而不用擔(dān)心控件、圖片太多,影響窗體的顯示速度。但采用這種方法,將不可避免地增加應(yīng)用程序本身所占的存儲容量,這是以容換取速度必須付出的代價。
二、 動態(tài)功能提示信息的VB.NET實現(xiàn)
在現(xiàn)代軟件設(shè)計中,多數(shù)功能圖標(biāo)、按鈕都在界面上直接確定其對應(yīng)的名稱,同時也提供了動態(tài)提示的功能,即當(dāng)鼠標(biāo)移至某一控件時,或使鼠標(biāo)的形狀用一具有象征意義的圖標(biāo)代替,或自動出現(xiàn)一條文字提示,下面介紹一下如何實現(xiàn)這種先進(jìn)的提示模式。
#T#動態(tài)改變鼠標(biāo)的圖形形狀,是通過控件的MousePointer屬性設(shè)置為13(自定義),然后在MouseIeon屬性中選取一ICO圖標(biāo)文件來完成的;動態(tài)文字提示功能是利用控件的MouseMove事件來實現(xiàn)的:將功能提示處理程序設(shè)計在對應(yīng)的MouseMove事件過程中,當(dāng)鼠標(biāo)移動到該控件范圍區(qū)域時,即可觸發(fā)程序執(zhí)行,完成動態(tài)功能提示;為了防止處理程序反復(fù)觸發(fā),必須設(shè)置一控制開關(guān),使處理程序只在鼠標(biāo)第一次觸發(fā)該控件區(qū)域時被執(zhí)行;取消功能提示的處理程序設(shè)計在窗體的MouseMove事件中,說明程序如下:
- Dim FirstTouch As Boolean '防止反復(fù)觸發(fā)處理程序的控制變量
- Private Sub ControlObject- MouseMove ()
- If FirstTouch Then
- FirstTouch =False '顯示功能提示字符
- End Sub
- Private Sub Form- MouseMove ()
- FirstTouch =True '取消功能提示字符
- End Sub