VBNET程序設(shè)計實用教程7_第1頁
VBNET程序設(shè)計實用教程7_第2頁
VBNET程序設(shè)計實用教程7_第3頁
VBNET程序設(shè)計實用教程7_第4頁
VBNET程序設(shè)計實用教程7_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VB.NET程序設(shè)計實用教程第7章

Windows高級界面設(shè)計本章任務(wù):體育彩票搖獎程序簡易文本編輯器程序圖文瀏覽器程序計算機應(yīng)用教研室操作系統(tǒng)本章要點菜單的制作方法標(biāo)準(zhǔn)對話框的使用工具欄的制作方法多窗體應(yīng)用程序設(shè)計狀態(tài)欄的制作方法要點MDI應(yīng)用程序設(shè)計7.1任務(wù)7-1:體育彩票搖獎程序——多窗體程序設(shè)計任務(wù)7-1描述:

編寫一個七位號碼體彩搖獎程序,程序中有三個窗體,分別如圖7-1、圖7-2和圖7-3所示。程序運行時首先出現(xiàn)搖獎窗體,在該窗體上單擊“搖獎”按鈕,將不停地產(chǎn)生隨機數(shù)并填充在七個文本框中,如圖7-4所示。單擊“停止”按鈕將停止搖獎,此時在文本框中顯示的數(shù)就是獲獎號碼。單擊“公布”按鈕將公布獲獎號碼,如圖7-5所示。在該窗體上單擊“返回”按鈕將返回到搖獎窗體。單擊“退出”按鈕將出現(xiàn)如圖7-6所示的“退出提示框”,單擊“確定”按鈕將退出應(yīng)用程序。注意:在圖7-1所示的窗體中還有一個定時器控件。計算機應(yīng)用教研室操作系統(tǒng)

圖7-1

搖獎窗體設(shè)計界面圖7-2

公布中獎號碼窗體設(shè)計界面

圖7-3

“退出提示框”窗體設(shè)計界面圖7-4

搖獎窗體運行界面

圖7-5公布中獎號碼窗體運行界面圖7-6“退出提示框”窗體運行界面1.啟動VB.NET,新建一個項目,項目類型為“Windows應(yīng)用程序”,項目的存放位置為“D:\VBTASK\CH07”,項目名為“Task7_1”。2.把Form1窗體的Text屬性值設(shè)置為“體育彩票搖獎程序”,把它的Name屬性值設(shè)置為“frmTicketReward”。單擊“解決方案資源管理器”中的“Form1.VB”窗體,然后在屬性窗口中把它文件名屬性設(shè)置為“frmTicketReward.vb”。然后執(zhí)行【項目】→【Task7_1屬性】命令,在出現(xiàn)的“Task7_1屬性頁”對話框中把“啟動對象”設(shè)置為frmTicketReward”。注意:在多窗體程序設(shè)計中,如果要改變啟動窗體,方法也是執(zhí)行【項目】→【***屬性】命令,在出現(xiàn)的“***屬性頁”對話框中把“啟動對象”設(shè)置為相應(yīng)窗體即可。

任務(wù)實現(xiàn):控件名屬性名屬性值作用Label1Caption"號碼"提示TextBox1~TextBox7Text""顯示搖獎號碼Button1Caption"搖獎"單擊它開始搖獎Button2Caption"停止"單擊它停止搖獎Button3Caption"公布"單擊它彈出公布獲獎號碼窗體,公布中獎號碼Button4Caption"退出"單擊它彈出“退出提示框”提示是否退出程序Timer1EnabledIntervalFalse200每隔150毫秒產(chǎn)生一組號碼3.對照圖7-1搖獎窗體設(shè)計界面,為窗體添加控件并設(shè)置控件的屬性??丶膶傩栽O(shè)置如表7-1所示。

表7-1任務(wù)7-1中的frmTicketReward窗體中的控件屬性設(shè)置及其功能計算機應(yīng)用教研室操作系統(tǒng)4.單擊工具欄上的“”按鈕或執(zhí)行【項目】→【添加Windows窗體】命令,將會出現(xiàn)如圖7-7所示的【添加新項】對話框。5.在該對話框的“模板”下面的列表框中選中【W(wǎng)indows窗體】圖標(biāo),在名稱后面的文本框中輸入窗體名“frmTicketPublish”,然后單擊“打開”按鈕,即為應(yīng)用程序添加了一個名為“frmTicketPublish”窗體。把該窗體的Text屬性值設(shè)置為“中獎號碼公布”。注意:也可以選添加窗體,然后再修改其Name屬性值。圖7-7

“添加新項”對話框控件名屬性名屬性值作用Label1Caption"本期獲獎號碼如下:"提示TextBox1~TextBox7Text""顯示中獎號碼Button1Caption"返回"返回到搖獎窗體6.對照圖7-2公布獲獎號碼窗體設(shè)計界面,為窗體添加控件并設(shè)置控件的屬性??丶膶傩栽O(shè)置如表7-2所示。7.采用與步驟4和步驟5同樣的方法為項目再添加一個名為“frmExit”的窗體,并把它的Text屬性值設(shè)置為“退出提示框”。表7-2

任務(wù)7-1中的frmTicketPublish窗體中的控件屬性設(shè)置及其功能對象名屬性名屬性值說明Label1Text"真的要退出應(yīng)用程序嗎?"提示信息Button1TextDialogResult"確定"OK單擊它將退出應(yīng)用程序Button2TextDialogResult"取消"Cancel單擊它將不退出應(yīng)用程序8.對照圖7-3退出提示框窗體設(shè)計界面,為窗體添加控件并設(shè)置控件的屬性。控件的屬性設(shè)置如表7-3所示。然后再把該窗體的FormBorderStyle屬性值設(shè)置為“FixedSingle”,把AcceptButton屬性值設(shè)置為“Button1”把CancelButton屬性值設(shè)置為“Button2”。至此界面設(shè)計基本完成。表7-3

任務(wù)7-1中的frmExit窗體中的控件屬性設(shè)置及其功能9.在“解決方案資源管理器”中雙擊“frmTicketReward”窗體,并切換到“frmTicketReward”窗體的代碼窗口,在代碼窗口的最頂部加上如下程序代碼。ImportsTask7_1.frmTicketPublishImportsTask7_1.frmExit注意:在多窗體程序設(shè)計中,每個窗體相當(dāng)于一個類,在一個窗體中要調(diào)用其它窗體,必須通過Imports語句把該窗體作為命名空間引入進來。10.在“

”下面編寫如下程序代碼,定義7個全局公享的整型變量,用來存放中獎號碼。PublicShareda1,a2,a3,a4,a5,a6,a7AsInteger'存放搖出來的中獎號碼注意:必須是在窗體的“Declaration”部分用“PublicShared”定義的變量才能被其它窗體使用。11.編寫本窗體的Load事件過程代碼,如下。

Private

Sub

frmTicketReward_Load(ByValsenderAs

System.Object,

ByValeAs

System.EventArgs)Handles

MyBase.LoadRandomize()'隨機數(shù)初始化

End

Sub12.編寫B(tài)utton1按鈕的Click事件過程代碼,如下。

Private

SubButton1_Click(ByValsenderAs

System.Object,ByVal

eAs

System.EventArgs)HandlesButton1.ClickTimer1.Enabled=True

'啟動定時器,開始搖號

Button2.Enabled=True

'停止按鈕可用

Button1.Enabled=False

'搖獎按鈕不可用

End

Sub13.編寫Timer1控件的Tick事件過程代碼,如下。

Private

SubTimer1_Tick(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)HandlesTimer1.Tick

'產(chǎn)生七位隨機數(shù)作為中獎號碼

a1=Int(Rnd()*10):a2=Int(Rnd()*10)a3=Int(Rnd()*10):a4=Int(Rnd()*10)a5=Int(Rnd()*10):a6=Int(Rnd()*10)a7=Int(Rnd()*5)+1'最后一位是特別號,只能在1~5之間

'顯示隨機產(chǎn)生的七位號碼

TextBox1.Text=CStr(a1):TextBox2.Text=CStr(a2)TextBox3.Text=CStr(a3):TextBox4.Text=CStr(a4)TextBox5.Text=CStr(a5):TextBox6.Text=CStr(a6)TextBox7.Text=CStr(a7)

End

Sub說明:該過程每隔200毫秒執(zhí)行一個,產(chǎn)生7個隨機數(shù)并顯示在文本框中,產(chǎn)生搖獎的效果。14.運行程序,單擊“搖獎”按鈕,會發(fā)現(xiàn)各個文本框中不停地出現(xiàn)隨機數(shù)。15.編寫B(tài)utton2按鈕的Click事件過程代碼,如下。

Private

SubButton2_Click(ByValsenderAs

System.Object,ByVal

eAsSystem.EventArgs)HandlesButton2.ClickTimer1.Enabled=False

'關(guān)閉定時器,結(jié)束搖號

Button3.Enabled=True

'公布按鈕可用

Button2.Enabled=False

'停止按鈕不可用

End

Sub16.運行程序,單擊“搖獎”按鈕搖獎后,單擊“停止”按鈕,會發(fā)現(xiàn)文本框中的數(shù)固定了下來,此時的值就可以認為是中獎號碼。17.編寫B(tài)utton3按鈕的Click事件過程代碼,如下。

Private

SubButton3_Click(ByValsenderAs

System.Object,ByVal

eAs

System.EventArgs)HandlesButton3.Click

Dim

Frm

As

New

frmTicketPublish

'定義一個frmTicketPublish類的對象

Frm.Show()'顯示該對象,窗體將顯示出來

End

Sub18.編寫B(tài)utton4按鈕的Click事件過程代碼,如下。

Private

SubButton4_Click(ByValsenderAs

System.Object,ByVal

eAs

System.EventArgs)HandlesButton4.Click

Dim

frmExitDialog

As

New

frmExit

'根據(jù)退出窗體生成對象

If

frmExitDialog.ShowDialog()=DialogResult.OK

Then

'如果單擊了“確定”按鈕,則退出

Me.Close()'關(guān)閉本窗體

Application.Exit()'退出應(yīng)用程序

End

If

End

Sub說明:(1)上述代碼首先產(chǎn)生一個frmExit窗體的實例,然后調(diào)用該窗體實例的ShowDialog方法把該窗體實例以對話框的形式顯示出來,如果用戶在對話框中單擊了“是”按鈕,則退出應(yīng)用程序。(2)在VB.NET中,除了可以使用Windows自帶的標(biāo)準(zhǔn)對話框外,如MsgBox、InputBox等,用戶還可以把自己設(shè)計的窗體定義成對話框。使用自定義對話框有以下幾個要點。①將窗體的FormBorderStyle屬性值設(shè)置為FixedDialog;②根據(jù)需要向窗體上添加控件;③使用窗體的ShowDialog方法顯示窗體,即顯示出對話框。19.運行程序,單擊“退出”按鈕,將會出現(xiàn)如圖7-6所示的對話框,單擊“是”按鈕退出應(yīng)用程序。20.在“解決方案資源管理器”中雙擊“frmTicketPublish”窗體并切換到該窗體,在所有代碼之前,加上如下代碼。ImportsTask7_1.frmTicketReward21.編寫“frmTicketPublish”窗體的Load事件過程代碼,如下。

Private

Sub

frmTicketPublish_Load(ByValsenderAs

System.Object,

ByValeAs

System.EventArgs)Handles

MyBase.Load

'把中獎號碼顯示在各文本框中

TextBox1.Text=CStr(a1):TextBox2.Text=CStr(a2)TextBox3.Text=CStr(a3):TextBox4.Text=CStr(a4)TextBox5.Text=CStr(a5):TextBox6.Text=CStr(a6)TextBox7.Text=CStr(a7)

End

Sub說明:在窗體中可以訪問被引入的其他窗體中定義的全局共享變量。22.為該窗體的“關(guān)閉”按鈕編寫Click事件過程代碼,如下。

Private

SubButton1_Click(ByValsenderAs

System.Object,ByVal

eAs

System.EventArgs)HandlesButton1.Click

Me.Close()'關(guān)閉本窗體

End

Sub23.運行程序,單擊“搖獎”按鈕進行搖獎,單擊“停止”按鈕產(chǎn)生中獎號碼,單擊“公布”按鈕將會出現(xiàn)如圖7-5所示的“中獎號碼公布”窗口,單擊“關(guān)閉”按鈕將加到“搖獎”窗口。24.保存項目,至此本任務(wù)全部完成。歸納說明:Windows應(yīng)用程序很少只由一個窗體組成,一般情況下一個應(yīng)用程序均擁有很多個窗體。VB.NET項目剛建立時只有一個名為Form1的窗體,要建立多窗體應(yīng)用程序應(yīng)首先為項目添加窗體。在VB.NET中還可以任意指定其他窗體為啟動窗體。本任務(wù)通過體育彩票搖獎程序的實現(xiàn)過程,講解了多窗體程序設(shè)計的方法與注意事項。7.2任務(wù)7-2:簡易文本編輯器程序——豐富格式文本框、菜單、對話框、工具欄、狀態(tài)欄等的應(yīng)用

任務(wù)7-2描述:編寫一個簡易文本編輯器程序,要求通過菜單能夠?qū)崿F(xiàn)文件的新建、打開、保存、另存為、退出等文件或應(yīng)用程序操作功能,能夠?qū)崿F(xiàn)撤消、重做、剪切、復(fù)制、粘貼、刪除、全選等編輯操作功能,能夠?qū)崿F(xiàn)設(shè)置文本的字體、顏色、背景色等格式操作功能。對于常用的功能還要通過工具欄實現(xiàn),還應(yīng)具有狀態(tài)欄對當(dāng)前的狀態(tài)進行提示。程序的設(shè)計界面如圖7-10所示,程序的運行界面如圖7-11所示。圖7-10程序設(shè)計界面

圖7-11程序運行界面任務(wù)分析:本任務(wù)涉及到菜單、工具欄、狀態(tài)欄等多種控件,中間涉及到多種編程技巧,分析起來較困難,將在講解的過程中一步一步地加上詳細分析。任務(wù)實現(xiàn):1.啟動VB.NET,新建一個項目,項目類型為“Windows應(yīng)用程序”,項目的存放位置為“D:\VBTASK\CH07”,項目名為“Task7_2”。2.把Form1窗體的Text屬性值設(shè)置為“簡易文本編輯器”,把它的Name屬性值設(shè)置為“frmTextEditor”。單擊“解決方案資源管理器”中的“Form1.VB”窗體,然后在屬性窗口中把它文件名屬性設(shè)置為“frmTextEditor.vb”。然后執(zhí)行【項目】→【Task7_2屬性】命令,在出現(xiàn)的“Task7_2屬性頁”對話框中把“啟動對象”設(shè)置為“frmTextEditor”。3.在工具箱上找到MainMenu(主菜單)控件圖標(biāo)“”,并把該控件添加到窗體上,標(biāo)題欄下將出現(xiàn)菜單欄,如圖7-12所示。圖7-12添加了MainMenu控件后出現(xiàn)的菜單欄

圖7-13在菜單欄中輸入了“文件[&F]”菜單項4.在“請在此處輸入”文字上單擊,然后輸入文字“文件[&F]”,如圖7-13所示。然后在屬性窗體中把該菜單項的名稱設(shè)置為“MenuItem1”。5.在“文件[F]”下面的“請在此處輸入”文字上單擊,輸入文字“新建[&N]”,然后在屬性窗口中把Name屬性值設(shè)置為MenuItem1_1,在屬性窗口中選中Shortcut屬性,單擊其后的向下箭頭按鈕,在出現(xiàn)的列表中選擇快捷鍵“CtrlN”,如圖7-14所示。

圖7-14為“文件[&F]”菜單輸入了“新建[&N]”菜單項圖7-15設(shè)計好的“文件”菜單6.使用同樣的方法,為“文件[F]”菜單再添加5個菜單項,菜單項的標(biāo)題文字、名稱、快捷鍵如表7-4所示。設(shè)置好的文件菜單如圖7-15所示。表7-4“文件”菜單中的其它菜單項及其屬性設(shè)置菜單標(biāo)題文字(Text屬性值)菜單項名(Name屬性值)快捷鍵(ShortCut屬性值)打開[&O]...MenuItem1_2CtrlO保存[S]MenuItem1_3CtrlS另存為[A]...MenuItem1_4None-MenuItem1_5None退出[&X]MenuItem1_6CtrlX說明:菜單項的常用屬性如下:(1)Text屬性:該屬性用來獲取或設(shè)置一個值,通過該值顯示菜單項標(biāo)題。當(dāng)使用Text屬性為菜單項指定標(biāo)題時,還可以在字符前加一個“&”號來指定熱鍵(訪問鍵,即加下劃線的字母)。例如,若要將“File”中的“F”指定為訪問鍵,應(yīng)將菜單項的標(biāo)題指定為“&File”。(2)Checked屬性:該屬性用來獲取或設(shè)置一個值,通過該值指示選中標(biāo)記是否出現(xiàn)在菜單項文本的旁邊。如果要放置選中標(biāo)記在菜單項文本的旁邊,屬性值為True,否則屬性值為False。默認值為False。(3)DefaultItem屬性:該屬性用來獲取或設(shè)置一個值,通過該值指示菜單項是否為默認菜單項。值為True時,是默認菜單項,值為False時,不是默認菜單項。菜單的默認菜單項以粗體的形式顯示。當(dāng)用戶雙擊包含默認項的子菜單后,默認項被選定,然后子菜單關(guān)閉。(4)Enabled屬性:該屬性用來獲取或設(shè)置一個值,通過該值指示菜單項是否可用。值為True時表示可用,值為False時表示當(dāng)前禁止使用。(5)RadioCheck屬性:該屬性用來獲取或設(shè)置一個值,通過該值指示選中的菜單項的左邊是顯示單選按鈕還是選中標(biāo)記。值為True時將顯示單選按鈕標(biāo)記,值為False時顯示選中標(biāo)記。(6)Shortcut屬性:該屬性用來獲取或設(shè)置一個值,該值指示與菜單項相關(guān)聯(lián)的快捷鍵。(7)ShowShortcut屬性:獲取或設(shè)置一個值,該值指示與菜單項關(guān)聯(lián)的快捷鍵是否在菜單項標(biāo)題的旁邊顯示。如果快捷組合鍵在菜單項標(biāo)題的旁邊顯示,該屬性值True,如果不顯示快捷鍵,該屬性值為False。默認值為True。(8)MdiList屬性:該屬性用來獲取或設(shè)置一個值,通過該值指示是否用在關(guān)聯(lián)窗體內(nèi)顯示的多文檔界面(MDI)子窗口列表來填充菜單項。若要在該菜單項中顯示MDI子窗口列表,則設(shè)置該屬性值為True,否則設(shè)置該屬性的值為False。默認值False。7.單擊“文件[F]”右邊的“請在此處輸入”,輸入“編輯[&E]”形成編輯菜單,在屬性窗口設(shè)置“編輯”菜單的名稱為“MenuItem2”。再為“編輯”菜單輸入7個菜單項,菜單項的標(biāo)題文字、名稱、快捷鍵如表7-5所示。設(shè)置好的文件菜單如圖7-16所示。表7-5“編輯”菜單中的菜單項及其屬性設(shè)置菜單標(biāo)題文字(Text屬性值)菜單項名(Name屬性值)快捷鍵(ShortCut屬性值)撤消[U]MenuItem2_1CtrlZ重做[R]MenuItem2_2CtrlY剪切[T]MenuItem2_3CtrlX復(fù)制[C]MenuItem2_4CtrlC粘貼[P]MenuItem2_5CtrlP刪除[D]MenuItem2_6全選[A]MenuItem2_7CtrlA圖7-16設(shè)計好的“編輯”菜單圖7-17設(shè)計好了的“格式”菜單8.采用類似的方法設(shè)計格式菜單,設(shè)計好的格式菜單如圖7-17所示,各菜單項及其屬性設(shè)置如表7-6所示。表7-6“格式”菜單中的菜單項及其屬性設(shè)置菜單標(biāo)題文字(Text屬性值)菜單項名(Name屬性值)快捷鍵(ShortCut屬性值)格式[&O]MenuItem3None字體[&F]...MenuItem3_1None顏色[C]...MenuItem3_2None-MenuItem3_3None背景MenuItem3_4None白色背景MenuItem3_4_1None灰色背景MenuItem3_4_2None注意:還需把“MenuItem3_4_1”菜單項的RadioCheck屬性值設(shè)置為True,把它的Checked屬性值設(shè)置為True。把“MenuItem3_4_2”菜單項的RadioCheck屬性值設(shè)置為False。9.在工具箱中找到工具欄圖標(biāo)“”,并為窗體添加一個ToolBar控件(工具欄控件),控件名稱為ToolBar1,如圖7-18所示。圖7-18添加的工具欄控件說明:對讀者來說,工具欄并不陌生,如Word中的常用工具欄、格式工具欄等。工具欄是由一系列的圖標(biāo)按鈕組成,形象化的圖標(biāo)與功能的對應(yīng),使應(yīng)用程序界面具有更好的交互性。在VB.NET中,要實現(xiàn)工具欄,需要使用兩個控件:ImageList控件和ToolBar控件。10.在工具箱中找到圖像列表控件圖標(biāo)“

”,并向窗體上添加一個ImageList控件(圖像列表控件),控件名為ImageList1。11.用鼠標(biāo)單擊ImageList1控件,然后在“屬性”窗口中選中“Images”屬性,單擊其后的“…”按鈕,將會出現(xiàn)如圖7-19所示的“Image集合編輯器”對話框。12.單擊“添加”按鈕,將會出現(xiàn)“打開”文件對話框,在該對話框中定義要添加到工具欄上的按鈕圖片文件,然后按“打開”按鈕,反復(fù)操作直到需要的圖形文件全部添加到“Image集合編輯器”的成員列表中,如圖7-20所示(添加了“新建”、“打開”、“保存”三個操作的按鈕圖片)。然后按“確定”按鈕關(guān)閉“Image集合編輯器”對話框。圖7-19“Image集合編輯器”對話框圖7-20添加了圖片文件后的“Image集合編輯器”對話框13.單擊ToolBar1工具欄控件,設(shè)置它的ImageList屬性值為“ImageList1”。然后再在“屬性”窗口中單擊“Buttons”屬性后面的“…”按鈕,將會出現(xiàn)“ToolBarButton集合編輯器”對話框。14.在該窗口中單擊“添加”按鈕,將會出現(xiàn)第一個按鈕,并且在窗口的右邊將出現(xiàn)該按鈕的屬性設(shè)置窗口,通過設(shè)置ImageIndex屬性可以指定在按鈕上顯示的圖片文件。圖7-21是添加了三個按鈕后的“ToolBarButton集合編輯器”對話框。圖7-21添加了三個工具欄按鈕后的“ToolBarButton集合編輯器”對話框15.單擊“確定”按鈕,關(guān)閉“ToolBarButton集合編輯器”對話框。設(shè)計好的工具欄如圖7-22所示。圖7-22設(shè)計好了的工具欄16.在工具箱中找到狀態(tài)欄圖標(biāo)“”,并為窗體添加一個StatusBar控件(狀態(tài)欄控件),控件名稱為StatusBar1。說明:狀態(tài)欄一般位于應(yīng)用程序窗口的下面,用來顯示程序的狀態(tài)。17.選中StatusBar1控件,在“屬性”窗口中選中Panel屬性,單擊其后的“…”按鈕,打開“StatusBarPanel集合編輯器”對話框,在該編輯器中通過單擊“添加”按鈕為StatusBar添加三個面板,如圖7-23所示。注意可以在該窗口的右邊設(shè)置每個面板的屬性,如Name等。圖7-23添加了三個Panel面板的“StatusBarPanel集合編輯器”對話框18.單擊“確定”按鈕返回程序設(shè)計界面,選中StatusBar控件,把它的ShowPanels屬性值設(shè)置為True。設(shè)計好的狀態(tài)欄如圖7-24所示。圖7-24設(shè)計好的狀態(tài)欄19.由于要在狀態(tài)欄的某一Panel中顯示當(dāng)前時間,為實現(xiàn)該功能可添加一個Timer控件,設(shè)置該控件的Interval屬性值為500,Enabled屬性值為True。20.在工具箱中找到豐富格式文本框圖標(biāo)“”,并為窗體添加一個RichTextBox控件(豐富格式文本框控件),控件名稱為RichTextBox1,控件位置任意,在運行時由程序自動設(shè)置成充滿除工具欄和狀態(tài)欄外的所有窗體部分。至此界面設(shè)計基本完成,設(shè)計好的界面如圖7-10所示(沒有對話框控件)。21.為窗體添加兩個模塊級變量,代碼如下。

Dim

Fname

As

String

‘存放正在編輯的文件名,如果新建的文件尚末保存,則值為空串

Dim

FExtName

As

String

'擴展名22.編寫一個名為“RichTextBoxResize”的通用過程,其作用是使豐富格式文本框充滿除工具欄和狀態(tài)欄外的所有空間。該過程在窗體加載時和改變大小時被調(diào)用。

'該過程使豐富格式文本框充滿除工具欄和狀態(tài)欄外的所有空間

Private

Sub

RichTextBoxResize()

'設(shè)置豐富格式文本框的起始位置為工具欄下面的最左上角

RichTextBox1.Top=ToolBar1.HeightRichTextBox1.Left=0

'設(shè)置豐富格式文本框的寬度與窗體的用戶區(qū)寬度一樣

RichTextBox1.Width=Me.ClientSize.Width

‘設(shè)置豐富格式文本框的高度為窗體用戶區(qū)高度減去工具欄的高及狀態(tài)欄的高度

RichTextBox1.Height=Me.ClientSize.Height-ToolBar1.Height–StatusBar1.Height

End

Sub23.在工具箱中找到“保存文件”對話框控件的圖標(biāo)“”,為窗體添加一個SaveFileDialog控件,該控件主要用來彈出Windows中標(biāo)準(zhǔn)的“保存文件”對話框。24.編寫一個名為“SaveAs”的通用過程,代碼如下。

該過程彈出“另存為”對話框,供用戶選擇或輸入要保存的文件名,并把RichTextBox1中的文本保存到該文件中去

Private

Sub

SaveAs()SaveFileDialog1.Filter="文本文件(*.txt)|*.txt|RTF格式文件(*.RTF)|*.RTF"SaveFileDialog1.FilterIndex=1'設(shè)置當(dāng)前文件過程器

SaveFileDialog1.Title="保存文件"'設(shè)置對話框的標(biāo)題

SaveFileDialog1.InitialDirectory=Application.StartupPath

'初始目錄設(shè)為啟動路徑

SaveFileDialog1.RestoreDirectory=True

'自動恢復(fù)初始目錄

SaveFileDialog1.ShowDialog()'彈出另存為對話框

Fname=SaveFileDialog1.FileName'獲取保存的文件名

If(Fname<>"")Then

'如果輸入了文件名

If(SaveFileDialog1.FilterIndex=1)Then

'如果是文本文件

RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.PlainText)'文本文件

FExtName="txt"

ElseRichTextBox1.SaveFile(Fname,RichTextBoxStreamType.RichText)'RTF文件

FExtName="rtf"

End

If

Me.Text=Fname+"-簡單文件編輯器"'設(shè)置標(biāo)題

End

IfRichTextBox1.Modified=False

'保存后把RichtextBox1.Modified屬性值變?yōu)镕alseStatusBar1.Panels(1).Text="已保存"

End

Sub說明:(1)請讀者參考語句后的說明,體會“另存為對話框”控件各屬性的含義。(2)該過程實現(xiàn)類似于“另存為…”菜單的功能。在保存文件且需要指定文件名的情況下可調(diào)用該過程。(3)本例調(diào)用了RichTextBox控件的SaveFile方法,使用了RichTextBox控件的Modified屬性。RichTextBox是一種既可以輸入文本、又可以編輯文本的文字處理控件,它在工具箱中的圖標(biāo)為“”。與TextBox控件相比,RichTextBox控件的文字處理功能更加豐富,不僅可以設(shè)定文字的顏色、字體,還具有字符串檢索功能。另外,RichTextBox控件還可以打開、編輯和存儲.rtf格式文件、ASCII文本格式文件及Unicode編碼格式的文件。下面詳細介紹一下該控件的常用屬性和方法。①RichTextBox控件的常用屬性前面介紹的TextBox控件所具有的屬性,RichTextBox控件基本上都具有,除此之外,該控件還具有一些其它屬性。RightMargin屬性:用來設(shè)置或獲取右側(cè)空白的大小,單位是像素。通過該屬性可以設(shè)置右側(cè)空白,如希望右側(cè)空白為50像素,可使用如下語句:RichTextBox1.RightMargin=RichTextBox1.Width-50;Rtf屬性:該屬性用來獲取或設(shè)置

RichTextBox

控件中的文本,包括所有

RTF格式代碼。可以使用此屬性將

RTF格式文本放到控件中以進行顯示,或提取控件中的RTF格式文本。此屬性通常用于在RichTextBox控件和其它

RTF源(如

MicrosoftWord或

Windows寫字板)之間交換信息。SelectedRtf屬性:該屬性用來獲取或設(shè)置控件中當(dāng)前選定的

RTF格式的格式文本。此屬性使用戶得以獲取控件中的選定文本,包括

RTF格式代碼。如果當(dāng)前未選定任何文本,給該屬性賦值,將把所賦的文本插入到插入點處。如果選定了文本,則給該屬性所賦的文本值將替換掉選定文本。SelectionColor屬性:該屬性用來獲取或設(shè)置當(dāng)前選定文本或插入點處的文本顏色。SelectionFont屬性:該屬性用來獲取或設(shè)置當(dāng)前選定文本或插入點處文本的字體。②常用方法前面介紹的TextBox控件所具有的方法,RichTextBox控件基本上都具有,除此之外,該控件還具有一些其它方法。Redo方法該方法用來重做上次被撤消的操作。調(diào)用的一般格式如下:

RichTextBox對象.Redo()該方法無參數(shù)。Find方法該方法用來從RichTextBox控件中查找指定的字符串。經(jīng)常使用的調(diào)用格式如下:[格式1]:RichTextBox對象.Find(str)[功能]:在指定的“RichTextBox”控件中查找文本,并返回搜索文本的第一個字符在控件內(nèi)的位置。如果未找到搜索字符串或者str參數(shù)指定的搜索字符串為空,則返回值為-1。[格式2]:RichTextBox對象.Find(str,RichTextBoxFinds)[功能]:在“RichTextBox對象”指定的文本框中搜索

str

參數(shù)中指定的文本,并返回文本的第一個字符在控件內(nèi)的位置。如果返回負值,則未找到所搜索的文本字符串。還可以使用此方法搜索特定格式的文本。參數(shù)RichTextBoxFinds指定如何在控件中執(zhí)行文本搜索,其取值及其含義如表7-7所示。表7-7 RichTextBoxFinds參數(shù)的取值及含義成員名稱說明MatchCase僅定位大小寫正確的搜索文本的實例。NoHighlight如果找到搜索文本,不突出顯示它。None定位搜索文本的所有實例,而不論是否為全字匹配。Reverse搜索在控件文檔的結(jié)尾處開始,并搜索到文檔的開頭。WholeWord僅定位全字匹配的文本。[格式3]:RichTextBox對象.Find(str,start,RichTextBoxFinds)[功能]:此版本的

Find方法與前面的格式2基本類似,不同的只是通過設(shè)置搜索起始位置來縮小文本搜索范圍,start參數(shù)表示開始搜索的位置。此功能使用戶得以避開可能已搜索過的文本或已經(jīng)知道不包含要搜索的特定文本的文本。如果在

options參數(shù)中指定了

RichTextBoxFinds.Reverse

值,則

start參數(shù)的值將指示反向搜索結(jié)束的位置,因為搜索是從文檔底部開始的。SaveFile方法

該方法用來把RichTextBox中的信息保存到指定的文件中,調(diào)用格式有以下三種:[格式1]:RichTextBox對象名.SaveFile(文件名)[功能]:將

RichTextBox控件中的內(nèi)容保存為RTF格式文件中。[格式2]:RichTextBox對象名.SaveFile(文件名,文件類型)[功能]:將

RichTextBox控件中的內(nèi)容保存為“文件類型”指定的格式文件中。[格式3]:RichTextBox對象名.SaveFile(數(shù)據(jù)流,數(shù)據(jù)流類型)[功能]:將

RichTextBox控件中的內(nèi)容保存為“數(shù)據(jù)流類型”指定的數(shù)據(jù)流類型文件中。其中,文件類型或數(shù)據(jù)流類型的取值及含義如表7-8所示。表7-8 文件類型或數(shù)據(jù)流類型的取值及含義取值含義RichTextBoxStreamType.PlainText純文本流RichTextBoxStreamType.RichTextRTF格式流RichTextBoxStreamType.UnicodePlainText采用Unicode編碼的文本流LoadFile方法使用LoadFile方法可以將文本文件、RTF文件裝入RichTextBox控件。主要的調(diào)用格式有以下三種。[格式1]:RichTextBox對象名.LoadFile(文件名)[功能]:將

RTF格式文件或標(biāo)準(zhǔn)

ASCII文本文件加載到

RichTextBox

控件中。[格式2]:RichTextBox對象名.LoadFile(數(shù)據(jù)流,數(shù)據(jù)流類型)[功能]:將現(xiàn)有數(shù)據(jù)流的內(nèi)容加載到

RichTextBox

控件中。[格式3]:RichTextBox對象名.LoadFile(文件名,文件類型)[功能]:將特定類型的文件加載到

RichTextBox

控件中。注意:文件類型和數(shù)據(jù)流格式見表7-8。25.編寫一個名為“NotSaveProcess”的通用過程,代碼如下。

Private

Sub

NotSaveProcess()'沒有保存處理

IfRichTextBox1.ModifiedThen

'如果RichTextBox1中的文本被修改,則提示是否保存

If

MsgBox("尚未保存,是否保存?",MsgBoxStyle.YesNo,"保存提示")=_

MsgBoxResult.Yes

Then

'需要保存處理

If

Fname=""Then

'如果文件名為空,文件尚未命名,則是第一次保存

Call

SaveAs()'調(diào)用SaveAs過程

Else

'文件已經(jīng)命名,已經(jīng)保存過

If(FExtName="txt")Then

'如果是文本文件

'文本文件保存

RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.PlainText)

Else

'RTF文件保存

RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.RichText)

End

If

End

If

End

If

End

If

End

Sub說明:該過程首行測試文件是否被修改過,如果已經(jīng)修改則提示是否保存,再根據(jù)用戶的選擇決定是否保存文件。為了防止對文件的修改丟失,可在“新建”、“打開”、“退出”等菜單命令執(zhí)行時選擇調(diào)用本過程,測試正在處理的文件是否被修改,如果被修改,讓用戶決定是否保存。26.編寫一個名為“NewFile”的通用過程,代碼如下。

Private

Sub

NewFile()

Call

NotSaveProcess()'調(diào)用過程NotSaveProcess實現(xiàn)沒有保存處理

Fname=""'文件名為空

FExtName="txt"'文件的擴展名為空

RichTextBox1.Text=""'清空RichTextBox1中顯示的文本

Me.Text="新建-簡單文件編輯器"'設(shè)置標(biāo)題

RichTextBox1.Modified=FalseStatusBar1.Panels(1).Text="已保存"

End

Sub說明:該過程在用戶選擇了“新建”菜單項,或單擊了工具欄上的“新建”按鈕時將被調(diào)用。27.在窗體的設(shè)計界面上,雙擊“文件[&F]”菜單中的“新建”菜單項,在出現(xiàn)的代碼窗體中,編寫該菜單項的事件過程代碼,如下。

'“新建”菜單項

Private

SubMenuItem1_1_Click(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)HandlesMenuItem1_1.Click

Call

NewFile()'調(diào)用NewFile過程

End

Sub說明:菜單項的常用事件主要有Click事件,該事件在用戶單擊菜單項時發(fā)生。28.運行程序,將會出現(xiàn)一個空白的輸入?yún)^(qū)域,標(biāo)題為“新建-簡單文件編輯器”。在空白輸入?yún)^(qū)域中輸入任意字符。選擇“文件”菜單中的“新建”菜單項,將會出現(xiàn)如圖7-25所示的“保存提示”對話框。單擊“是”按鈕,將會出現(xiàn)如圖7-26所示的“保存文件”對話框,該對話框是調(diào)用SaveFileDialog1控件的ShowDialog方法彈出的。在該對話框中用戶可以選擇或輸入保存的文件類型、保存位置和保存的文件名。圖7-25“保存提示”對話框圖7-26“保存文件”對話框29.在工具箱中找到“打開文件”對話框控件(OpenFileDialog控件)圖標(biāo)“”,并為窗體添加一個OpenFileDialog控件。說明:OpenFileDialog控件又稱“打開文件”對話框,主要用來彈出Windows中標(biāo)準(zhǔn)的打開文件對話框。30.編寫一個名為“FileOpen”的通用過程,代碼如下。

Private

Sub

FileOpen()

Call

NotSaveProcess()'調(diào)用過程NotSaveProcess實現(xiàn)沒有保存的處理

'設(shè)置過濾器屬性

OpenFileDialog1.Filter="文本文件(*.txt)|*.txt|RTF格式文件(*.RTF)|*.RTF"OpenFileDialog1.FilterIndex=1'設(shè)置當(dāng)前文件過濾器

OpenFileDialog1.Title="打開文件"'設(shè)置對話框的標(biāo)題

OpenFileDialog1.InitialDirectory=Application.StartupPath

'初始目錄設(shè)為啟動路徑

OpenFileDialog1.RestoreDirectory=True

'自動恢復(fù)初始目錄

OpenFileDialog1.ShowDialog()'彈出打開文件對話框

Fname=OpenFileDialog1.FileName'獲取打開的文件名

If(Fname<>"")Then

'如果選擇了文件

If(OpenFileDialog1.FilterIndex=1)Then

'如果是文本文件

RichTextBox1.LoadFile(Fname,RichTextBoxStreamType.PlainText)'文本文件

FExtName="txt"

ElseRichTextBox1.LoadFile(Fname,RichTextBoxStreamType.RichText)'RTF文件

FExtName="rtf"

End

If

End

If

Me.Text=Fname+"-簡單文件編輯器"'設(shè)置標(biāo)題

RichTextBox1.Modified=False

'文件剛打開時,把RichtextBox1.Modified屬性值設(shè)為FalseStatusBar1.Panels(1).Text="已保存"

End

Sub說明:(1)該過程在用戶選擇了“打開”菜單項,或單擊了工具欄上的“打開”按鈕時將被調(diào)用。(2)上述代碼中使用了OpenFileDialog控件的多個屬性并調(diào)用了它的ShowDialog方法。下面將該控件的常用屬性和方法作詳細的介紹。①OpenFileDialog控件的常用屬性Title屬性:該屬性用來獲取或設(shè)置對話框標(biāo)題,默認值為空字符串("")。如果標(biāo)題為空字符串,則系統(tǒng)將使用默認標(biāo)題“打開”。Filter屬性:該屬性用來獲取或設(shè)置當(dāng)前文件名篩選器字符串,該字符串決定對話框的【另存為文件類型】或【文件類型】框中出現(xiàn)的選擇內(nèi)容。對于每個篩選選項,篩選器字符串都包含篩選器說明、垂直線條(|)和篩選器模式。不同篩選選項的字符串由垂直線條隔開。下面是篩選器字符串的一個示例:“文本文件

(*.txt)|*.txt|所有文件

(*.*)|*.*”。還可以通過用分號來分隔各種文件類型,可以將多個篩選器模式添加到篩選器中。例如:“圖像文件(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|所有文件

(*.*)|*.*”FilterIndex屬性:該屬性用來獲取或設(shè)置文件對話框中當(dāng)前選定篩選器的索引。第一個篩選器的索引為1,默認值為1。FileName屬性:該屬性用來獲取在打開文件對話框中選定的文件名的字符串。文件名既包含文件路徑也包含擴展名。如果未選定文件,該屬性將返回空字符串("")。InitialDirectory屬性:該屬性用來獲取或設(shè)置文件對話框顯示的初始目錄,默認值為空字符串("")。ShowReadOnly屬性:該屬性用來獲取或設(shè)置一個值,該值指示對話框是否包含只讀復(fù)選框。如果對話框包含只讀復(fù)選框,則屬性值為True,否則屬性值為False。默認值為False。ReadOnlyChecked屬性:該屬性用來獲取或設(shè)置一個值,該值指示是否選中只讀復(fù)選框。如果選中了只讀復(fù)選框,則屬性值為True,反之屬性值為False。默認值為False。Multiselect屬性:該屬性用來獲取或設(shè)置一個值,該值指示對話框是否允許選擇多個文件。如果對話框允許同時選定多個文件,則該屬性值為True,反之屬性值為False。默認值為False。FileNames屬性:該屬性用來獲取對話框中所有選定文件的文件名。每個文件名都既包含文件路徑又包含文件擴展名。如果未選定文件,該方法將返回空數(shù)組。RestoreDirectory屬性:該屬性用來獲取或設(shè)置一個值,該值指示對話框在關(guān)閉前是否還原當(dāng)前目錄。假設(shè)用戶在搜索文件的過程中更改了目錄,且該屬性值為True,那么,對話框會將當(dāng)前目錄還原為初始值,若該屬性值為False,則不還原成初始值。默認值為False。②OpenFileDialog控件的常用方法常用方法有兩個OpenFile和ShowDialog

方法,本節(jié)只介紹ShowDialog方法,該方法的作用是顯示通用對話框,其一般調(diào)用形式如下:對話框控件名.ShowDialog()調(diào)用該方法后,將會出現(xiàn)對話框,如果用戶單擊對話框中的“確定”按鈕,則返回值為DialogResult.OK;否則返回值為DialogResult.Cancel。其它對話框控件均具有ShowDialog方法,以后不再重復(fù)介紹。(3)SaveFileDialog控件也具有FileName、Filter、FilterIndex、InitialDirectory、Title等屬性,這些屬性的作用與OpenFileDialog對話框控件基本一致。(4)需注意的是:上述兩個對話框只返回要打開或保存的文件名,并沒有真正提供打開或保存文件的功能,程序員必須自己編寫文件打開或保存程序,才能真正實現(xiàn)文件的打開和保存功能。31.編寫“打開”菜單項的Click事件過程代碼,如下。

'“打開”菜單項

Private

SubMenuItem1_2_Click(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)HandlesMenuItem1_2.Click

Call

FileOpen()

End

Sub圖7-27“打開文件”對話框32.執(zhí)行程序,選擇“文件”菜單中的“打開”菜單項,將會出現(xiàn)如圖7-27所示的“打開文件”對話框,用戶選擇文件類型和文件名后,單擊“打開”按鈕,將把相應(yīng)的文件打開并顯示在編輯區(qū)域(RichTextBox1控件)中,并且文件名將顯示在窗口的標(biāo)題欄上。說明:“打開文件”對話框是調(diào)用OpenFileDialog的ShowDialog方法彈出的。33.編寫一個名為“Save”的通用過程,代碼如下。

Private

SubSave()'該函數(shù)實現(xiàn)保存功能

IfRichTextBox1.ModifiedThen

'如果RichTextBox1中的文本被修改,則要保存

If

Fname=""Then

'如果文件名為空,文件尚未命名,則是第一次保存

Call

SaveAs()'調(diào)用SaveAs過程

Else

'文件已經(jīng)命名,已經(jīng)保存過

If(FExtName="txt")Then

'如果是文本文件

'文本文件保存

RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.PlainText)

Else

'RTF文件保存

RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.RichText)

End

If

End

If

End

IfRichTextBox1.Modified=False

'保存后把RichtextBox1.Modified屬性值變?yōu)镕alseStatusBar1.Panels(1).Text="已保存"

End

Sub說明:(1)該過程首先判斷Fname變量值是否為空,如果為空,則是第一次保存,調(diào)用SaveAs對話框彈出“保存文件”對話框供用戶對文件進行命名。如果Fname變量值不為空,直接保存到該文件中即可。(2)在選擇“文件”菜單中的“保存”菜單項時或單擊工具欄上的“保存”按鈕時將調(diào)用該過程。34.編寫“保存”菜單項的Click事件過程代碼,如下。

'“保存”菜單項

Private

SubMenuItem1_3_Click(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)

HandlesMenuItem1_3.Click

CallSave()

End

Sub35.運行程序,輸入文本后,選中“文件”菜單中的“保存”菜單項,將會出現(xiàn)“保存文件”對話框,讓用戶輸入文件名并保存文件。然后打開一個文件,修改后直接選擇“文件”菜單中的“保存”菜單項,會發(fā)現(xiàn)不會出現(xiàn)“保存文件”對話框,而是直接保存起來。36.編寫“另存為”菜單項的Click事件過程代碼,如下。

'“另存為”菜單項

Private

SubMenuItem1_4_Click(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)

HandlesMenuItem1_4.Click

Call

SaveAs()

End

Sub37.運行程序,打開一個文件,選中“文件”菜單中的“另存為”菜單項,將會出現(xiàn)“保存文件”對話框,讓用戶輸入另存為的文件名并保存文件。38.編寫窗體的Load事件過程代碼,如下。

Private

Sub

frmTextEditor_Load(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)Handles

MyBase.Load

Call

RichTextBoxResize()'調(diào)用RichTextBoxResize過程

Fname=""

FExtName="txt"

Me.Text="新建-簡單文件編輯器"MenuItem2_1.Enabled=False

'撤消菜單項不可用

MenuItem2_2.Enabled=False

'重做菜單項不可用

MenuItem2_3.Enabled=False

'剪切菜單項不可用

MenuItem2_4.Enabled=False

'復(fù)制菜單項不可用

MenuItem2_5.Enabled=False

'粘貼菜單項不可用

MenuItem3_4_1.Checked=True

'選中白色背景

RichTextBox1.BackColor=Color.White

'設(shè)置RichTextBox1的背景色為白色

'在狀態(tài)欄上顯示字符數(shù)

StatusBar1.Panels(0).Text()="字符數(shù):"+CStr(RichTextBox1.TextLength)

'顯示是否已保存信息

StatusBar1.Panels(1).Text="已保存"

End

Sub39.編寫Timer1的Tick事件過程代碼,如下。

'每隔500毫秒更新一次時間

Private

SubTimer1_Tick(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)HandlesTimer1.TickStatusBar1.Panels(2).Text=DateTime.Now.ToString("T")'顯示當(dāng)前時間

End

Sub40.執(zhí)行程序,會發(fā)現(xiàn)狀態(tài)欄上顯示出字符數(shù)、是否保存信息及當(dāng)前時間。打開編輯菜單,會發(fā)現(xiàn)有多個菜單項是變灰的。41.編寫窗體的Resize事件過程代碼,如下。

Private

Sub

frmTextEditor_Resize(ByValsenderAs

Object,ByValeAs

System.EventArgs)Handles

MyBase.Resize

Call

RichTextBoxResize()'調(diào)用RichTextBoxResize過程

End

Sub42.運行程序,改變窗體的大小,會發(fā)現(xiàn)編輯區(qū)域也相應(yīng)的改變大小。43.編寫“退出”菜單項的Click事件過程代碼,如下。

Private

SubMenuItem1_6_Click(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)Handles

MenuItem1_6.Click

Call

NotSaveProcess()'調(diào)用過程NotSaveProcess實現(xiàn)沒有保存的處理

Me.Close()'關(guān)閉窗體

Application.Exit()'退出應(yīng)用程序

End

Sub44.運行程序,對“退出”菜單項功能進行測試。45.編寫RichTextBox1控件的TextChanged事件過程代碼,如下。

Private

SubRichTextBox1_TextChanged(ByValsenderAs

System.Object,ByValeAs

System.EventArgs)HandlesRichTextBox1.TextChanged

IfRichTextBox1.ModifiedThenStatusBar1.Panels(1).Text="未保存"

End

If

'在狀態(tài)欄上顯示字符數(shù)

StatusBar1.Panels(0).Text()="字符數(shù):"+CStr(RichTextBox1.TextLength)

End

Sub46.運行程序,輸入若干個字符后,觀察狀態(tài)欄上的變化。47.編寫ToolBar1控件的ButtonClick事件過程代碼,如下。

'工具欄按鈕的Click事件代碼

Private

SubToolBar1_ButtonClick(ByValsenderAs

System.Object,ByValeAs

System.Windows.Forms.ToolBarButtonClickEventArgs)HandlesToolBar1.ButtonClick

If

e.Button

IsToolBarButton1Then

'如果單擊的是第一個按鈕

Call

NewFile()

ElseIf

e.Button

IsToolBarButton2Then

'如果單擊的是第二個按鈕

Call

FileOpen()

ElseIf

e.Button

IsToolBarButton3Then

'如果單擊的是第三個按鈕

CallSave()

End

If

End

Sub48.運行程序,單擊“工具欄”上的各按鈕,看它們與相應(yīng)的菜單命令的執(zhí)行結(jié)果是否一樣。49.編寫

溫馨提示

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

評論

0/150

提交評論