Visual Basic.NET程序設(shè)計(jì)課件第9章_第1頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第9章_第2頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第9章_第3頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第9章_第4頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第9章_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第9章菜單、工具欄和狀態(tài)欄主編:夏敏捷教學(xué)目標(biāo)菜單的創(chuàng)建、設(shè)置和應(yīng)用工具欄的創(chuàng)建、設(shè)置和應(yīng)用狀態(tài)欄的創(chuàng)建、設(shè)置和應(yīng)用鼠標(biāo)、鍵盤事件及應(yīng)用目錄9.1菜單9.2工具欄9.3狀態(tài)欄9.4鼠標(biāo)和鍵盤事件9.1菜單9.1.1標(biāo)準(zhǔn)菜單的組成9.1.2創(chuàng)建應(yīng)用程序菜單9.1.3編寫菜單控件代碼9.1.4控制菜單狀態(tài)9.1.5動(dòng)態(tài)增減菜單概述VisualBasic.NET提供了兩種基本類型的菜單:標(biāo)準(zhǔn)菜單(Menu)一般位于應(yīng)用程序窗口標(biāo)題欄的下方,用鼠標(biāo)單擊菜單標(biāo)題就會(huì)向下展開菜單,因此也稱為下拉菜單(簡(jiǎn)稱菜單)。彈出式菜單、上下文菜單(ContextMenu)獨(dú)立于標(biāo)準(zhǔn)菜單之外,且在特定操作(如右擊鼠標(biāo))情況下顯示在對(duì)象上的浮動(dòng)菜單。彈出式菜單的內(nèi)容包含了與所操作對(duì)象相關(guān)的功能或選項(xiàng),所以也稱為快捷菜單。9.1.1標(biāo)準(zhǔn)菜單的組成一個(gè)菜單通常包含若干個(gè)菜單項(xiàng),分別代表不同的功能選擇,這些菜單項(xiàng)又可以分為幾種類型。為了方便用戶對(duì)菜單類型的識(shí)別,Windows系統(tǒng)在菜單的標(biāo)識(shí)上作了一些約定,通過菜單項(xiàng)前后的某些標(biāo)記或菜單項(xiàng)本身,向用戶提示該菜單項(xiàng)的操作類型。菜單項(xiàng)說(shuō)

明黑色字符當(dāng)前可以選用的菜單項(xiàng)灰色字符當(dāng)前不可選用的菜單項(xiàng)后面帶省略號(hào)“…”選用后將顯示一個(gè)對(duì)話框,要求用戶輸入執(zhí)行菜單命令所需的信息或改變某些設(shè)置后面帶三角符號(hào)“

”菜單標(biāo)題。表示帶有下級(jí)菜單,當(dāng)鼠標(biāo)指向菜單標(biāo)題時(shí),將顯示它的子菜單分隔符條按功能將菜單項(xiàng)劃分為若干個(gè)邏輯組前面有符號(hào)“√”復(fù)選標(biāo)記。菜單項(xiàng)前有此符號(hào)時(shí),表示該功能開啟后面帶字母組合鍵快捷鍵。提供了通過鍵盤直接使用菜單功能的快捷方式9.1.2創(chuàng)建應(yīng)用程序菜單1.創(chuàng)建標(biāo)準(zhǔn)菜單標(biāo)準(zhǔn)菜單由菜單條(MenuStrip)控件實(shí)現(xiàn),彈出式菜單由上下文菜單條(ContextMenuStrip)控件實(shí)現(xiàn)。無(wú)論哪種菜單控件,都可以通過輸入菜單標(biāo)題文字快速完成菜單的制作。9.1.2創(chuàng)建應(yīng)用程序菜單創(chuàng)建的菜單可根據(jù)需要再編輯,方法是右擊相關(guān)菜單項(xiàng),在出現(xiàn)的功能菜單中選擇“設(shè)置圖像”、“插入”、“刪除”……等操作9.1.2創(chuàng)建應(yīng)用程序菜單修改菜單的名字(Name)、快捷鍵(ShortcutKeys)等。修改的方法有兩種:逐一選中菜單,并通過“屬性”窗口修改對(duì)象的(Name)和ShortcutKeys屬性。右擊包含子項(xiàng)的菜單,選擇“編輯DropDownItems”,打開“項(xiàng)集合編輯器”窗口,逐項(xiàng)修改。對(duì)主菜單集合而言,則應(yīng)右擊菜單條的空白處,選擇“編輯項(xiàng)”。9.1.2創(chuàng)建應(yīng)用程序菜單2.創(chuàng)建上下文菜單上下文菜單(ContextMenu)的創(chuàng)建過程與標(biāo)準(zhǔn)菜單(Menu)相同,區(qū)別在于創(chuàng)建上下文菜單使用的是上下文菜單條(ContextMenuStrip)控件。上下文菜單的編輯修改也與標(biāo)準(zhǔn)菜單相同,但因上下文菜單在設(shè)計(jì)環(huán)境中會(huì)自動(dòng)隱藏,所以只能通過“屬性”窗口上方的“對(duì)象”列表進(jìn)行選取。9.1.2創(chuàng)建應(yīng)用程序菜單上下文菜單創(chuàng)建后,需要與特定的對(duì)象建立關(guān)聯(lián)才能使用,方法有兩種:在設(shè)計(jì)時(shí),通過“屬性”窗口設(shè)置相應(yīng)對(duì)象的“ContextMenuStrip”屬性。在程序運(yùn)行時(shí),通過賦值語(yǔ)句為“ContextMenuStrip”屬性指定上下文菜單對(duì)象。txtEditor.ContextMenuStrip=Popup9.1.3編寫菜單控件代碼菜單最主要的事件是Click事件,因此大部分的代碼都寫在該事件中。雙擊相應(yīng)菜單對(duì)象即可快速進(jìn)入其Click事件過程代碼中。下面是【例9.1】中部分菜單的事件代碼?!巴顺觥辈藛问录a:

Me.Close()“編輯”菜單及上下文菜單中的四個(gè)功能分別對(duì)應(yīng)了下面一條語(yǔ)句:

txtEditor.Copy()‘復(fù)制功能

txtEditor.Cut()‘剪切功能

txtEditor.Paste()‘粘貼功能

txtEditor.SelectAll()‘全選功能源程序9.1.4控制菜單狀態(tài)1.有效性控制菜單控件的有效性取決于它的Enabled屬性,當(dāng)此屬性為True時(shí),該菜單項(xiàng)為黑色,可以選用;為False時(shí),該菜單項(xiàng)變?yōu)榛疑?,不可選用。文本框MouseUp事件代碼如下:IftxtEditor.SelectedText.Length>0TheneditCopy.Enabled=TrueeditCut.Enabled=TrueElseeditCopy.Enabled=FalseeditCut.Enabled=FalseEndIfIfClipboard.GetDataObject().GetDataPresent(DataFormats.Text)=TrueTheneditPaste.Enabled=TrueElseeditPaste.Enabled=FalseEndIf源程序9.1.4控制菜單狀態(tài)2.復(fù)選標(biāo)記控制菜單控件上的復(fù)選標(biāo)志取決于其Checked屬性,常用來(lái)指示某項(xiàng)功能的狀態(tài)是處于打開或是關(guān)閉。當(dāng)Checked屬性為True時(shí),該菜單項(xiàng)前有一個(gè)復(fù)選標(biāo)記“√”,表示為打開狀態(tài);當(dāng)此屬性為False時(shí),該菜單項(xiàng)前沒有任何標(biāo)記,表示為關(guān)閉狀態(tài)。DimFSAsFontStylefmtBold.Checked=NotfmtBold.Checked

IffmtBold.CheckedThenFS=FontStyle.BoldIffmtItalic.CheckedThenFS=FSOrFontStyle.ItalicIffmtUnderline.CheckedThenFS=FSOrFontStyle.UnderlinetxtEditor.Font=NewFont(txtEditor.Font,FS)源程序9.1.4控制菜單狀態(tài)3.隱藏或顯示菜單控件菜單對(duì)象的隱藏和顯示取決于其Visible屬性。此屬性為True時(shí)菜單可見;否則不可見。菜單項(xiàng)默認(rèn)是可見的,如果需要在程序運(yùn)行時(shí)改變其可見性,只需用賦值語(yǔ)句改變其Visible屬性。

fileSaveAs.Visible=True‘使可見

fileSaveAs.Visible=False‘使不可見源程序9.1.5動(dòng)態(tài)增減菜單1.運(yùn)行時(shí)添加菜單若需要在程序運(yùn)行時(shí)動(dòng)態(tài)地增加菜單項(xiàng),可通過調(diào)用相應(yīng)菜單的“添加下拉菜單項(xiàng)”的方法實(shí)現(xiàn)。若“字體”菜單的名字為“fmtFontName”,則為其動(dòng)態(tài)添加子菜單項(xiàng)的語(yǔ)句為:

fmtFontName.DropDownItems.Add(菜單項(xiàng)標(biāo)題)【例9.5】為“字體”菜單添加系統(tǒng)中的所有中文字體。DimIAsInteger,fcAsStringForI=0ToSystem.Drawing.FontFamily.Families.Count-1fc=FontFamily.Families(I).Name.Substring(1,1).ToUpper'為“字體”菜單添加系統(tǒng)中的中文字體

IfNot(fc>="A"Andfc<="Z")ThenfmtFontName.DropDownItems.Add(_FontFamily.Families(I).Name.ToString())EndIfNextI源程序9.1.5動(dòng)態(tài)增減菜單2.運(yùn)行時(shí)刪除菜單使用菜單下拉項(xiàng)的RemoveAt方法,指定菜單在同組中的順序編號(hào)即可。該方法適用于動(dòng)態(tài)添加的菜單,也適用于設(shè)計(jì)時(shí)創(chuàng)建的菜單。

fmtFontSize.DropDownItems.RemoveAt(1)‘動(dòng)態(tài)添加的菜單

mnuFile.DropDownItems.RemoveAt(0)‘設(shè)計(jì)時(shí)創(chuàng)建的菜單使用菜單項(xiàng)的Dispose方法。該方法適用于動(dòng)態(tài)添加的菜單,也適用于設(shè)計(jì)時(shí)創(chuàng)建的菜單。

DimIAsIntegerForI=0TofmtFontName.DropDownItems.Count-1IffmtFontName.DropDownItems(I).Text="宋體"ThenfmtFontName.DropDownItems(I).Dispose()ExitForEndIfNextmnuFile.Dispose()‘刪除“文件”菜單使用下拉菜單項(xiàng)的Remove方法,刪除帶有子菜單的菜單項(xiàng)。該方法適用于動(dòng)態(tài)添加的菜單,也適用于設(shè)計(jì)時(shí)創(chuàng)建的菜單。

mnuFormat.DropDownItems.Remove(fmtFontName)源程序9.2工具欄工具欄是不可或缺界面對(duì)象,它由按鈕、下拉框等內(nèi)容組成,直接展現(xiàn)在窗體的界面上,以供快速訪問最常用的軟件功能。9.2工具欄9.2.1創(chuàng)建工具欄9.2.2編寫工具欄代碼9.2.3動(dòng)態(tài)控制工具欄9.2.1創(chuàng)建工具欄1.創(chuàng)建工具欄對(duì)象創(chuàng)建工具欄需要使用ToolStrip控件。對(duì)象類名說(shuō)明按鈕Button通過鼠標(biāo)點(diǎn)擊提供相應(yīng)功能標(biāo)簽Label在工具欄上顯示文字內(nèi)容分隔按鈕SplitButton帶附屬功能的按鈕,左側(cè)是標(biāo)準(zhǔn)按鈕,右側(cè)是下拉按鈕下拉按鈕DropDownButton單擊時(shí)顯示功能列表,供使用者選擇分隔條Separator在工具欄上顯示一個(gè)分隔豎線組合框ComboBox在工具欄上提供列表選擇的功能文本框TextBox在工具欄上提供文本編輯區(qū)進(jìn)度條ProgressBar在工具欄上提供進(jìn)度提示功能9.2.1創(chuàng)建工具欄2.調(diào)整對(duì)象的屬性選中工具欄,修改其屬性,工具欄的主要屬性有:(Name),工具欄的名稱。CanOverFlow,是否支持溢出。支持溢出的工具欄在當(dāng)無(wú)法完整顯示時(shí),會(huì)出現(xiàn)溢出按鈕,通過該按鈕可訪問溢出的按鈕。Dock,是否支持???,支持??康墓ぞ邫诳赏蟿?dòng)改變其位置。Text,按鈕文字。按鈕默認(rèn)只顯示圖像,但也可以只顯示文字或兩者均顯示。需要正確設(shè)置。ToolTipText,工具提示文字,當(dāng)鼠標(biāo)移到對(duì)象上時(shí)顯示的文字內(nèi)容。該屬性默認(rèn)與Text屬性相同。通過“項(xiàng)集合編輯器”對(duì)話框,可調(diào)整工具欄對(duì)象的各種屬性。9.2.1創(chuàng)建工具欄3.設(shè)置按鈕圖像右擊工具欄按鈕,選擇“設(shè)置圖像”,打開“選擇資源”對(duì)話框。若以本地資源的方式導(dǎo)入,則資源導(dǎo)入后在程序運(yùn)行過程中不可更改;若以項(xiàng)目資源文件的方式導(dǎo)入,則資源在項(xiàng)目中是共享的,程序運(yùn)行時(shí)可以隨時(shí)根據(jù)需要改變資源的引用。9.2.2編寫工具欄代碼除分隔條外,其他按鈕都可以編寫相關(guān)的功能代碼。每個(gè)按鈕對(duì)象對(duì)應(yīng)的過程可以獨(dú)立編寫,也可以利用現(xiàn)有的過程。利用“復(fù)制”菜單的功能,建立“復(fù)制”按鈕的功能。PrivateSubeditCopy_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandleseditCopy.Click,tbnCopy.ClicktxtEditor.Copy()EndSub源程序9.2.3動(dòng)態(tài)控制工具欄工具欄的動(dòng)態(tài)控制方法與菜單相同,也分為是否有效、是否復(fù)選和是否可見等幾項(xiàng)控制。tbnCopy.Enabled=False'有效性控制

'控制復(fù)選特征tbnBold.Checked=NottbnBold.CheckedtbnBold.Visible=False'可見性控制源程序9.3狀態(tài)欄狀態(tài)欄可以為操作提供提示信息,也可以告知程序的當(dāng)前狀態(tài)。雖然狀態(tài)欄不是必須的界面對(duì)象,但它卻有著其他對(duì)象無(wú)法替代的功能和作用。9.3狀態(tài)欄9.3.1創(chuàng)建狀態(tài)欄9.3.2使用狀態(tài)欄9.3.3控制狀態(tài)欄對(duì)象9.3.1創(chuàng)建狀態(tài)欄狀態(tài)欄由StatusStrip控件實(shí)現(xiàn),其中可以包含四種對(duì)象:狀態(tài)標(biāo)簽進(jìn)度條下拉按鈕切分按鈕添加StatusStrip對(duì)象后,狀態(tài)欄的設(shè)計(jì)過程與工具欄的設(shè)計(jì)過程相似:先快速添加對(duì)象;再調(diào)整各對(duì)象的屬性;最后編寫對(duì)象的事件代碼。9.3.2使用狀態(tài)欄1.狀態(tài)欄標(biāo)簽對(duì)象狀態(tài)欄標(biāo)簽對(duì)象的主要功能是在狀態(tài)欄中顯示文字提示信息,也可以利用其中的文字作為鏈接的載體。它主要的屬性有:(Name),對(duì)象的名字,應(yīng)修改以使其更加直觀。AutoSize,是否自動(dòng)根據(jù)文字的多少調(diào)整對(duì)象大小。AutoToolTip,是否自動(dòng)以Text或ToolTipText的內(nèi)容顯示工具提示。IsLink,指示狀態(tài)欄標(biāo)簽對(duì)象是否為一個(gè)超鏈接。如果為True,則還可利用LinkBehavior、LinkColor及LinkVisited等屬性控制鏈接的行為和顏色。Text,對(duì)象中顯示的文字內(nèi)容。ToolTipText,工具提示文字的內(nèi)容,可與Text相同或不同。源程序9.3.2使用狀態(tài)欄2.狀態(tài)欄進(jìn)度條對(duì)象進(jìn)度條是顯示時(shí)間進(jìn)度的對(duì)象,它以形象的圖形動(dòng)畫形式描述過程的開始、進(jìn)度情況及至結(jié)束的整個(gè)時(shí)間過程。進(jìn)度條的主要屬性有:(Name),對(duì)象的名字,應(yīng)當(dāng)修改以使其更加直觀。AutoSize,是否自動(dòng)調(diào)整大小。Maximum,進(jìn)度條對(duì)象所描述范圍的上限(最大值)。Minimum,進(jìn)度條對(duì)象所描述范圍的下限(最小值)。Style,進(jìn)度條的樣式,有以下三種:Blocks通過在ProgressBar中增加分段塊的數(shù)量來(lái)指示進(jìn)度。Continuous通過在ProgressBar中增加平滑連續(xù)的欄的大小來(lái)指示進(jìn)度。Marquee通過以字幕方式在ProgressBar中連續(xù)滾動(dòng)一個(gè)塊來(lái)指示進(jìn)度。Value,進(jìn)度條的當(dāng)前進(jìn)度值,該值介于最小值和最大值之間。源程序9.3.2使用狀態(tài)欄3.狀態(tài)欄下拉按鈕和切分按鈕對(duì)象在狀態(tài)欄上,下拉按鈕和切分按鈕對(duì)象是非常相似的兩個(gè)對(duì)象。不同之處在于,下拉按鈕對(duì)象只能從其按鈕組列表中選擇,而切分按鈕對(duì)象本身包含一個(gè)主按鈕可用,又能和下拉按鈕對(duì)象一樣添加新的按鈕。源程序9.3.3控制狀態(tài)欄對(duì)象狀態(tài)欄對(duì)象的控制方法與前面兩小節(jié)中的菜單、工具欄相似,都是利用對(duì)象的Visible、Enabled、Checked、BackColor和ForeColor等屬性,實(shí)現(xiàn)對(duì)象狀態(tài)的控制。在前面的【例9.3】、【例9.4】、【例9.5】、【例9.7】、【例9.8】和【例9.11】中,都有相關(guān)控制的語(yǔ)句可供參考。9.4鼠標(biāo)和鍵盤事件9.4.1鼠標(biāo)事件9.4.2鍵盤事件9.4.1鼠標(biāo)事件鼠標(biāo)事件是鼠標(biāo)的不同操作相對(duì)應(yīng)的過程描述,鼠標(biāo)的主要操作有左右鍵的單擊、滾輪的滾動(dòng)、移動(dòng)鼠標(biāo)、拖動(dòng)等幾項(xiàng),這些操作分別對(duì)應(yīng)了特定的鼠標(biāo)事件名稱:Click,單擊事件,可由任何鼠標(biāo)鍵觸發(fā)。DoubleClick,雙擊事件,可由任何鼠標(biāo)鍵觸發(fā)。MouseClick,鼠標(biāo)單擊事件,可由任何鼠標(biāo)鍵觸發(fā)。MouseDoubleClick,鼠標(biāo)雙擊事件,可由任何鼠標(biāo)鍵觸發(fā)。MouseDown,鼠標(biāo)鍵按下事件,可由任何鼠標(biāo)鍵觸發(fā)。MouseEnter,鼠標(biāo)進(jìn)入事件,當(dāng)鼠標(biāo)從外部越過對(duì)象邊界進(jìn)入對(duì)象內(nèi)時(shí)發(fā)生一次。MouseHover,鼠標(biāo)懸停事件,當(dāng)鼠標(biāo)從外部進(jìn)入對(duì)象區(qū)域內(nèi)停下時(shí)發(fā)生一次。MousLeave,鼠標(biāo)離開事件,當(dāng)鼠標(biāo)從內(nèi)部越過對(duì)象邊界移出對(duì)象外時(shí)發(fā)生一次。MouseMove,鼠標(biāo)移動(dòng)事件,當(dāng)鼠標(biāo)在對(duì)象區(qū)域內(nèi)移動(dòng)時(shí)連續(xù)發(fā)生。MouseUp,鼠標(biāo)鍵松開事件,可由任何鼠標(biāo)鍵觸發(fā)。Mousewheel,鼠標(biāo)滾輪事件,在滾動(dòng)鼠標(biāo)滾輪且控件有焦點(diǎn)時(shí)發(fā)生。相應(yīng)控件必須是支持鼠標(biāo)滾輪的控件(如:多行文本框、列表框)。9.4.1鼠標(biāo)事件【例9.12】檢測(cè)并利用鼠標(biāo)的左、中、右鍵,分別以不同的方式控制對(duì)象。分析:在鼠標(biāo)的MouseDown和MouseUp事件中,可以利用其類型為MouseEventArgs的參數(shù)e對(duì)象,檢測(cè)鼠標(biāo)按鍵的不同,以控制程序的行為。PrivateSubLabel1_MouseUp(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesLabel1.MouseUpSelectCasee.ButtonCaseWindows.Forms.MouseButtons.Left‘左鍵

Label1.ForeColor=Color.RedCaseWindows.Forms.MouseButtons.Middle‘中鍵

Label1.ForeColor=Color.GreenCaseWindows.Forms.MouseButtons.Right‘右鍵

Label1.ForeColor=Color.BlueEndSelectEndSub源程序9.4.1鼠標(biāo)事件【例9.13】利用鼠標(biāo)事件為其不同狀態(tài)顯示不同的提示信息。分析:鼠標(biāo)的進(jìn)入、懸停、移動(dòng)和離開事件分別代表了不同的鼠標(biāo)狀態(tài),合理利用這些事件可以在特定時(shí)刻完成特定的功能。PrivateSubLabel1_MouseEnter(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesLabel1.MouseEnterLabel1.Te

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論