版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章應(yīng)用程序界面設(shè)計
8.1菜單8.2工具欄8.3狀態(tài)欄8.4多重窗體和多文檔界面習(xí)題8.1菜單前面所講的眾多應(yīng)用程序都是由一個窗體和幾個控件組成的,屬于簡單的應(yīng)用程序,此處我們將通過增加菜單來增強VB應(yīng)用程序的功能?,F(xiàn)代應(yīng)用軟件既要具備先進合理的內(nèi)核,也要具備良好的用戶界面,因此,屏幕菜單技術(shù)在各類應(yīng)用軟件的編程中得到了廣泛使用。菜單的基本作用有兩個:一是將應(yīng)用程序的所有功能分類顯示于菜單的選項中,以便用戶選擇;二是管理應(yīng)用系統(tǒng),控制各種功能模塊的運行。一個高質(zhì)量的菜單程序,應(yīng)該使用戶界面美觀、操作方便。在實際應(yīng)用中,菜單分為下拉式和彈出式兩種。案例1帶下拉式菜單的文本編輯器
1.學(xué)習(xí)目標設(shè)計一個帶有下拉式菜單系統(tǒng)的簡易文本編輯器,布局如圖8.1所示。窗體中包含一個文本框。窗體的菜單系統(tǒng)包括“文件(F)”、“編輯(E)”及“格式(O)”三個主菜單。其中,“文件(F)”包括“打開”、“保存”及“關(guān)閉”三個菜單項;“編輯(E)”包括“剪切”、“復(fù)制”、“粘貼”及“全選”四個菜單項;“格式(O)”包括一個“字體”菜單項和一個“顏色”的級聯(lián)菜單項。按Alt+F鍵可下拉出“文件”主菜單下的子菜單,按Alt+E鍵可下拉出“編輯”主菜單下的子菜單,按Alt+O鍵可下拉出“格式”主菜單下的子菜單。單擊“文件”下的“關(guān)閉”菜單項或按Ctrl+Q鍵可退出程序的運行;單擊“格式”下的“字體”菜單項,文本框中的字體變成隸書;單擊“格式”下的“顏色”菜單項的級聯(lián)菜單項“紅色”,文本框中的字變成紅色;單擊“格式”下的“顏色”菜單項的級聯(lián)菜單項“藍色”,文本框中的字變成藍色。圖8.1簡易編輯器的窗體布局
2.相關(guān)知識
1)菜單的結(jié)構(gòu)下拉式菜單系統(tǒng)的結(jié)構(gòu)如圖8.2所示。在下拉式菜單中,一般有一個菜單欄,它是所有主菜單的集合。當用戶選擇了相應(yīng)的主菜單后,就會下拉出一個子菜單。子菜單由許多菜單項構(gòu)成,如果某個選項后帶有“…”,則表示選中它將會啟動一個對話框;如果選項后帶有一個三角符號,則表示它是一個“級聯(lián)菜單”,即它下面還有一級下拉菜單。如果把菜單欄也算為一層,則級聯(lián)菜單最多可達6層。在一般應(yīng)用上很少有人這樣設(shè)計,因為6層對用戶而言顯得太復(fù)雜了。圖8.2下拉式菜單系統(tǒng)的基本結(jié)構(gòu)
2)菜單編輯器
VB提供了設(shè)計菜單的工具——菜單編輯器。使用菜單編輯器,可以輕松、快速地創(chuàng)建、編輯、修改主菜單、子菜單和菜單項,并且可以設(shè)定菜單是否包括快捷鍵、快速鍵和復(fù)選框,從而建立一個應(yīng)用程序的菜單系統(tǒng)。在設(shè)計菜單時,打開“菜單編輯器”的方法有兩種:一種是選擇“工具”→“菜單編輯器”項,就會在屏幕上彈出一個“菜單編輯器”窗口,如圖8.3所示;另一種是在窗體上點擊右鍵,在彈出的菜單中選“菜單編輯器”項。圖8.3菜單編輯器需要說明的是,雖然菜單系統(tǒng)是一個整體,但實際上每一個菜單選項就是一個控件。也就是說,設(shè)計菜單同以往設(shè)計控件類似,使用菜單編輯器就是在設(shè)計階段對菜單的屬性進行設(shè)置。除此之外,在程序運行時,也可以通過代碼改變屬性值。VisualBasic6.0的菜單只有一個單擊事件——Click。菜單編輯器上部各項是用來對菜單項進行屬性設(shè)置的,其含義如下:①“標題(P)”(Caption):設(shè)置菜單欄、菜單項或子菜單項的文字內(nèi)容。運行程序后,該項可通過設(shè)置Caption屬性值加以改變。如果想要設(shè)定快速鍵,可利用連字符(&)來設(shè)置,即在設(shè)置菜單欄、菜單項或子菜單項的文字內(nèi)容后加上連字符(&)及一個英文字母。運行后就可以利用Alt鍵和該英文字母快速地選中此菜單項。如在標題欄僅輸入破折號“-”,則可以新增分隔線,將菜單項加以分類。②“名稱(M)”(Name):菜單控件的名稱,這個名字將在設(shè)計程序時使用,是提供給計算機識別菜單控件用的,此項必須設(shè)置。③“索引(X)”:當多個菜單項或子菜單項設(shè)定為同一名稱時,可以用索引值(0,1,2…)來區(qū)別每一個項目。需要注意的是,索引值一定要遞增排序,即依照所完成的菜單項由左至右,從上到下以遞增的方式來設(shè)定索引值。④“快捷鍵(S)”:為菜單項設(shè)置快捷鍵,可從“快捷鍵(S)”的下拉列表框中選擇系統(tǒng)提供的、可用的快捷鍵組合。⑤“復(fù)選(C)”、“有效(E)”和“可見(V)”:這些選項控制菜單項的狀態(tài)?!皬?fù)選”用以控制菜單項是否有選中標志;“有效”表示是否讓使用者選擇該項;“可見”則設(shè)置是否顯示該菜單項。菜單編輯器中部有7個按鈕,用來對輸入的菜單項進行簡單的編輯。這7個按鈕的功能如下:①“←”和“→”:每單擊一次向右箭頭“→”就在選定的菜單項前添加4個點,表示該菜單項為前一菜單項的子菜單,即將此項的等級下降一級。如圖8.4所示,“顏色”前有4個點,表示它為“編輯”主菜單的子菜單,而“紅色”、“藍色”前有8個點,表示它們是“顏色”的子菜單,即級聯(lián)菜單。單擊向左箭頭“←”則為相反操作,即將此項的等級提升一級。圖8.4菜單編輯器設(shè)置示例②“↑”和“↓”:單擊“↑”按鈕將所選取的菜單項上移,單擊“↓”按鈕將所選取的菜單項下移。③“下一個”:在所選取的菜單項下方新增空白項或選取菜單項。④“插入”:在光標所在位置的上方插入一個新的菜單項。⑤“刪除”:刪除光標所在處的菜單項。菜單編輯器下部是菜單項的顯示區(qū),輸入的菜單項將在此處顯示出來。
3.程序?qū)崿F(xiàn)設(shè)計菜單系統(tǒng)應(yīng)首先通過菜單編輯器設(shè)置各菜單項,然后為菜單項添加相應(yīng)的事件過程。其具體步驟如下。
1)界面設(shè)計與屬性設(shè)置
(1)新建窗體,將其Caption屬性設(shè)置為“簡易編輯器”。
(2)打開“菜單編輯器”,建立“文件(F)”主菜單:在“標題(P)”項鍵入“文件(&F)”(“&”符號表示對“文件”主菜單設(shè)置了一個快速訪問鍵,用戶同時按下Alt鍵和F字母鍵,就能打開文件的“文件”主菜單),在“名稱(M)”項鍵入“mnuFile”。
(3)建立“打開”菜單項:單擊“下一個”及“→”按鈕,在“標題(P)”項鍵入“打開”,在“名稱(M)”項鍵入“mnuFileOpen”,在“快捷鍵(S)”項中選擇“Ctrl+O”,如圖8.5所示。圖8.5建立“打開”菜單項
(4)建立“保存”、“關(guān)閉”菜單項的方法同(3)。
(5)建立分隔線:將光標移到“關(guān)閉”菜單項,單擊“插入”按鈕,可以看到在“關(guān)閉”命令上添加了一行,并自動加入了一個內(nèi)縮符號。在“標題(P)”項中輸入一個減號“-”,在“名稱(M)”項鍵入“sep2”,如圖8.6所示。圖8.6建立分隔線注意:分隔線本身不是菜單項,它僅僅起分隔菜單項的作用,因此不能帶子菜單,不能設(shè)置“復(fù)選”等屬性,也不能設(shè)置快捷鍵。但必須設(shè)置“名稱(M)”屬性,否則在運行時會出錯。到目前為止,第一個“文件”主菜單和它的第一級子菜單已經(jīng)全部建立,按照同樣的方法可以建立“編輯”主菜單及其“剪切”、“復(fù)制”、“粘貼”和“全選”子菜單,“格式”主菜單及其“字體”和“顏色”子菜單,以及“顏色”的子菜單項“紅色”和“藍色”。具體菜單項屬性設(shè)置如表8.1所示。設(shè)置完成后的菜單編輯器如圖8.6所示。
(6)設(shè)計完菜單后,單擊“確定”按鈕,將菜單編輯器關(guān)閉。如果用戶要修改一個已構(gòu)造好的菜單,可再次進入菜單編輯器窗口進行修改。表8.1菜單項屬性設(shè)置
2)編寫代碼構(gòu)造好菜單后,還要為各個菜單項編寫代碼,才能實現(xiàn)通過選擇菜單項來完成某項操作的功能。“文件”主菜單中的“打開”、“保存”菜單項,“編輯”主菜單中的“剪切”、“復(fù)制”、“粘貼”和“全選”等菜單項的事件過程將在后面的章節(jié)分別給出,這里我們僅對其余菜單項的事件過程進行編寫。在“代碼”窗口中輸入如下代碼:①編寫“文件”主菜單中的“關(guān)閉”菜單項的事件過程。
PrivateSubmnuFileClose_Click()
End
EndSub②編寫“格式”主菜單中“字體”菜單項的事件過程。
PrivateSubmnuFormatFont_Click()
Text1.FontName="隸書"
EndSub③編寫“顏色”子菜單“紅色”、“藍色”級聯(lián)菜單項的事件過程。
PrivateSubmnuFormatColorRed_Click()'紅色
Text1.ForeColor=vbRed
EndSub
PrivateSubmnuFormatColorBlue_Click()'藍色
Text1.ForeColor=vbBlue
EndSub
3)運行程序運行程序,結(jié)果如圖8.1所示。案例2菜單項的控制
1.學(xué)習(xí)目標在案例1中設(shè)計的簡易編輯器的基礎(chǔ)上,實現(xiàn)“編輯”主菜單中“剪切”、“復(fù)制”、“粘貼”及“全選”菜單項的功能。按Alt+E鍵可下拉出“編輯”主菜單下的子菜單,按Ctrl+X鍵可執(zhí)行“剪切”操作,按Ctrl+C鍵可執(zhí)行“復(fù)制”操作?!凹羟小薄ⅰ皬?fù)制”、“粘貼”菜單項的初始狀態(tài)均為無效狀態(tài),當在文本框中選中某段文本時,“剪切”、“復(fù)制”菜單項狀態(tài)變?yōu)橛行顟B(tài);剪貼板中有數(shù)據(jù)后,“粘貼”菜單項變成有效狀態(tài),如圖8.7所示。圖8.7簡易編輯器的外觀
2.相關(guān)知識
1)剪貼板的應(yīng)用在文本編輯器中常用到“剪切”或“復(fù)制”操作,“剪切”或“復(fù)制”是將所選文本存到剪貼板上,便于以后用“粘貼”操作將剪貼板上的內(nèi)容“貼”到光標的指定位置,這幾項操作都是借助剪貼板完成的。剪貼板(Clipboard)是用來暫時保存文本和圖形的一種特殊的控件,它是VisualBasic中預(yù)先定義好了的控件組,剪貼板對象不具備任何屬性及事件,但有一些方法可以用來發(fā)送與接收數(shù)據(jù)。其中最有用的兩種方法是SetText和GetText。SetText方法是將選中的文本數(shù)據(jù)復(fù)制到剪貼板上,而GetText方法則是將剪貼板上的文本數(shù)據(jù)發(fā)送到光標所在的位置。
(1)在文本編輯器中進行“剪切”操作時,首先判斷Text1是否有文本被選中,只有選中了文本才能進行剪切操作。判斷是否有文本被選中時使用了文本框的SelLength屬性,該屬性返回被選中的文本的字符數(shù)量,它大于零則表示有文本被選中。代碼如下:
IfText1.SelLength>0Then
Clipboard.SetTextText1.SelText
Text1.SelText=""
mnuEditPaste.Enabled=True
EndIf在第二行代碼中利用了文本框的SelText屬性,該屬性表示返回被選中的文本。將Text1中的反白的文本用Clipboard.SetText方法復(fù)制到剪貼板上,并利用Text1.SelText=""將Text1.SelText(反白區(qū))中的文本設(shè)為空白。剪貼板中有數(shù)據(jù)后,“粘貼”菜單項變成有效狀態(tài)。
(2)在文本編輯器中進行“復(fù)制”操作與“剪切”相似,只不過被選中的文本復(fù)制到剪貼板上后不被刪除。其代碼如下:
IfText1.SelLength>0Then
Clipboard.SetTextText1.SelText
mnuEditPaste.Enabled=True
EndIf
(3)在文本編輯器中進行“粘貼”操作是把剪貼板上的數(shù)據(jù)傳送到光標所在處,故在進行“粘貼”之前,首先應(yīng)該確認剪貼板上是否有數(shù)據(jù)。通常用Len(Clipboard.GetText)來測試剪貼板上字符的長度,如果長度值大于零則表示剪貼板上有字符。只有剪貼板上有字符才能將剪貼板上的數(shù)據(jù)發(fā)送給Text1的SelText屬性(注意:不是發(fā)送給Text屬性,若將數(shù)據(jù)賦值給Text屬性,則文本框中原來所有的文本將被剪貼板中的數(shù)據(jù)替代,這與要求不一致)。其代碼如下:
IfLen(Clipboard.GetText)>0Then
Text1.SelText=Clipboard.GetText
EndIf此外,在使用剪貼板之前最好用Clear方法將剪貼板清空,因為剪貼板是Windows的系統(tǒng)資源,它可能已存放其他程序復(fù)制的信息,所以在使用之前應(yīng)先清空剪貼板中的內(nèi)容。
2)動態(tài)改變菜單項的狀態(tài)設(shè)計良好的菜單欄可以更精確地引導(dǎo)用戶操作,因此設(shè)計者需掌握如何通過設(shè)置選項的狀態(tài)來控制菜單。例如,在簡易編輯器中,若未選中某文本,則“剪切”、“復(fù)制”、“粘貼”菜單項的狀態(tài)應(yīng)該為無效狀態(tài),而當選中某段文本時,“剪切”、“復(fù)制”菜單項狀態(tài)則變?yōu)橛行顟B(tài)。這些選項的初始狀態(tài)可在“菜單編輯器”中設(shè)置,運行時狀態(tài)的改變可以由程序動態(tài)控制。菜單項的“是否有效”可以通過該選項的Enabled屬性來設(shè)置。例如,設(shè)置“剪切”、“復(fù)制”、“粘貼”菜單項的初始狀態(tài)為“無效”,可用“菜單編輯器”完成設(shè)置,也可在裝載窗體時執(zhí)行代碼,其代碼如下:
mnuEditCut.Enabled=False
mnuEditCopy.Enabled=False
mnuEditPaste.Enabled=False當在文本框中選中某文本即Text1.SelLength>0時,“剪切”、“復(fù)制”命令狀態(tài)應(yīng)變?yōu)橛行顟B(tài);未選中時,菜單項則為無效的灰色。其狀態(tài)的動態(tài)改變可以由以下代碼完成:
IfText1.SelLength>0Then
mnuEditCut.Enabled=True
mnuEditCopy.Enabled=True
Else
mnuEditCut.Enabled=False
mnuEditCopy.Enabled=False
EndIf有些菜單項狀態(tài)類似一種開關(guān)狀態(tài),可在“選中”和“未選中”之間切換。菜單項的“是否選中”可通過Checked屬性來設(shè)置。Checked屬性為True,表示“選中”,菜單項前有“√”符號;為False,表示“未選中”,菜單項前無“√”符號。例如,點擊“全選”菜單項后,菜單項前出現(xiàn)“√”符號,所有文本為全部選中的反白狀態(tài),再次點擊后,取消以上現(xiàn)象。相應(yīng)的代碼如下:
IfmnuEditSel.Checked=FalseThen
mnuEditSel.Checked=True
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
Else
mnuEditSel.Checked=False
Text1.SelLength=0
EndIf由于mnuEditSel.Checked是開關(guān)變量,只有兩種狀態(tài),因此在程序中應(yīng)首先判斷mnuEditSel.Checked的值。當它為False時,應(yīng)設(shè)為True,為“√”狀態(tài),同時選中所有文本;當mnuEditSel.Checked的值為True時,則設(shè)為False。
3.程序?qū)崿F(xiàn)
1)界面設(shè)計與屬性設(shè)置界面設(shè)計與屬性設(shè)置見案例8.1。
2)編寫代碼在“代碼”窗口中輸入如下代碼:
PrivateSubForm_Load()
Clipboard.Clear
mnuEditCut.Enabled=False
mnuEditCopy.Enabled=False
mnuEditPaste.Enabled=False
EndSub
PrivateSubmnuEdit_Click() '編輯
IfText1.SelLength>0Then
mnuEditCut.Enabled=True
mnuEditCopy.Enabled=True
Else
mnuEditCut.Enabled=False
mnuEditCopy.Enabled=False
EndIf
EndSub
PrivateSubmnuEditCut_Click() '剪切
IfText1.SelLength>0Then
Clipboard.SetTextText1.SelText
Text1.SelText=""
mnuEditPaste.Enabled=True
EndIf
EndSub
PrivateSubmnuEditCopy_Click() '復(fù)制
IfText1.SelLength>0Then
Clipboard.SetTextText1.SelText
mnuEditPaste.Enabled=True
EndIf
EndSub
PrivateSubmnuEditPaste_Click() '粘貼
IfLen(Clipboard.GetText)>0Then
Text1.SelText=Clipboard.GetText
EndIf
EndSub
PrivateSubmnuEditSel_Click() '全選
IfmnuEditSel.Checked=FalseThen
mnuEditSel.Checked=True
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
Else
mnuEditSel.Checked=False
Text1.SelLength=0
EndIf
EndSub
3)運行程序運行程序,結(jié)果如圖8.7所示。案例3彈出式菜單的設(shè)計
1.學(xué)習(xí)目標設(shè)計一個帶有彈出式菜單的簡易編輯器,布局如圖8.8所示。窗體中包含一個文本框,窗體的菜單系統(tǒng)包括含“文件(F)”及“格式(O)”2個主菜單的下拉式菜單和一個含編輯功能的彈出式菜單。其中彈出式菜單包括“剪切”、“復(fù)制”、“粘貼”及“全選”4項。通過本案例的學(xué)習(xí),掌握用菜單編輯器設(shè)計彈出式菜單的基本方法。圖8.8簡易編輯器的彈出式菜單
2.相關(guān)知識彈出式菜單(PopupMenu)是獨立于菜單欄而顯示在窗體上的浮動菜單,當單擊鼠標右鍵時可以將它調(diào)出來,常被用來快速地在屏幕上顯示若干菜單命令,這些命令一般是當前鼠標所指向的對象的快捷操作命令。它也是通過“菜單編輯器”來設(shè)計的。由于用戶看不見這個菜單,因此必須用PopupMenu方法才能將它顯示出來,并指明此菜單的位置與特點,其語法格式為:
[對象.]PopupMenu<主菜單>[,Flags[,X[,Y]]]其中,“主菜單”是指主菜單的名字(Name);“X”、“Y”用來指定顯示的位置,如果省略不用,則直接沿用當時的鼠標坐標;“Flags”用來指明菜單的狀態(tài),共有四種設(shè)置值,如表8.2所示。表8.2Flags的值及其含義
3.程序?qū)崿F(xiàn)
1)界面設(shè)計與屬性設(shè)置設(shè)計步驟如下:
(1)在“菜單編輯器”中建立一個主菜單,名稱可以任意設(shè)定(如“編輯”),因為主菜單的名稱在菜單彈出的時候不顯示。
(2)將“編輯”主菜單的“可見”(Visible)屬性設(shè)為False。運行程序時,不再顯示這一項,如圖8.9所示。單擊“下一個”命令按鈕,再單擊“→”按鈕,依次輸入彈出式菜單中的各菜單項,設(shè)置方法同下拉式菜單。
圖8.9彈出式菜單的屬性設(shè)置
2)編寫代碼打開“代碼”窗口,在窗體的MouseDown事件過程中編寫如下程序:
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=2ThenPopupMenumnuEdit
EndSub其中,MouseDown事件表示當在窗體上按下鼠標時,執(zhí)行程序;Button參數(shù)用來返回用戶按下鼠標的哪一個鍵(1表示左鍵,2表示右鍵,3表示中鍵);If語句判斷按下的是否為右鍵,若是右鍵,則調(diào)出彈出式菜單。
3)運行程序運行程序,結(jié)果如圖8.8所示。8.2工具欄在Windows的各種應(yīng)用程序中,除菜單命令外,還可以通過工具欄上的按鈕發(fā)出操作命令。工具欄一般放置在菜單欄的下面,它包含了一組按鈕,按鈕上既能夠顯示文字,也能夠顯示圖像,或者同時顯示文字和圖像。這些按鈕與應(yīng)用程序的某些菜單項相對應(yīng),為用戶訪問應(yīng)用程序的最常用功能和命令提供了圖形接口和快速訪問途徑。案例4工具欄的設(shè)計
1.學(xué)習(xí)目標設(shè)計一個包含“打開”、“粘貼”、“顏色”圖形按鈕的工具欄,其中“顏色”按鈕帶下拉式選項“紅色”和“藍色”。單擊“打開”和“粘貼”按鈕分別彈出一個對話框,單擊“顏色”按鈕的下拉式選項“紅色”或“藍色”,文本框中的文本變成相應(yīng)的顏色,如圖8.10所示。圖8.10工具欄設(shè)計效果
2.相關(guān)知識
VB提供了Toolbar(工具欄)控件,可以快速地設(shè)計工具欄。當需要在工具欄按鈕上顯示圖像時,還要使用ImageList(圖像列表)控件中已經(jīng)加載的圖像。
Toolbar控件和ImageList控件都是VisualBasic6.0的外部控件(ActiveX控件)。ActiveX控件是VB工具箱的擴充,這些控件能被添加到工具箱中,也能從工具箱中刪除,ActiveX控件可以由系統(tǒng)提供,也可以由第三方廠商提供,還可以由用戶自己開發(fā)。在應(yīng)用程序使用它們之前必須首先將其加載到工程中。加載方法是:單擊“工程”→“部件”→“控件”,再選中“MicrosoftWindowsCommonControl6.0”選項,單擊“確定”按鈕關(guān)閉“部件”對話框,包括Toolbar(工具欄)、ImageList(圖像列表)、StatuBar(狀態(tài)欄)、ProgressBar(進度條)、TreeView(樹狀視圖)、ListView(列表視圖)和Slider(滑塊)等常用的MicrosoftWindows控件被添加到工具箱中,如圖8.11所示。圖8.11加載控件
1)?Toolbar控件
Toolbar控件中的每個按鈕都可以顯示自己的圖形并設(shè)置標題,可以設(shè)置當鼠標指針移到按鈕上時顯示提示字符,還可以在程序運行時動態(tài)增加、刪除按鈕。Toolbar控件中的按鈕可以按功能分組或加入分隔符。此外,Toolbar還是一個控件容器。
(1)?Toolbar控件的屬性。在設(shè)計時,通過設(shè)置Toolbar控件的一系列屬性,可以定義工具欄中顯示的按鈕、按鈕上顯示的文字、圖像、按鈕提示等,其屬性窗口如圖8.12所示。圖8.12Toolbar控件的“屬性頁”下面介紹幾個主要屬性。①“通用”選項卡?!袷髽酥羔槪褐付ó斒髽酥羔樢苿拥焦ぞ邫谏虾蟮男螤?。讀者既可以選擇該屬性對話框中提供的預(yù)選鼠標指針,也可以定義自己的鼠標指針?!駡D像列表:指定工具欄按鈕要顯示的圖像在哪個ImageList控件中保存著。要在這個下拉列表框中指定ImageList控件,必須在設(shè)置該屬性之前,先把ImageList控件放置到窗體上?!裢庥^:指定工具欄的外觀。0—平面工具欄;1—三維工具欄?!駱邮剑褐付ò粹o的外觀。0—平面按鈕;1—三維按鈕。●顯示提示:指定當鼠標指針移動到工具欄按鈕上時是否顯示該按鈕的提示。選中該復(fù)選框時,顯示提示;否則不顯示提示?!裼行В褐付üぞ邫谑欠衲軌蚴褂?,選中時,工具欄有效;否則無效。②“按鈕”選項卡?!袼饕褐付ò粹o的引用編號,從1開始計數(shù)。●標題:指定顯示在按鈕上的標題。●關(guān)鍵字(Key):指定引用按鈕的字符串?!駱邮剑褐付ò粹o的外觀和狀態(tài)。該欄所提供的按鈕樣式共有6種,如表8.3所示。●工具提示文本:指定當鼠標指針移動到按鈕上并稍微停留后,顯示在鼠標指針附近的提示信息。●可見:選中該復(fù)選框時,顯示當前按鈕;否則不顯示?!裼行В哼x中該復(fù)選框時,當前按鈕有效,即用戶能夠操作當前按鈕;否則無效?!癜粹o菜單:該組合框中的選項用于定義按鈕的下拉菜單。表8.3按鈕樣式的值及其功能
(2)?Toolbar控件的事件。一般編寫工具按鈕的事件過程是在Toolbar控件的ButtonClick事件中,當用戶單擊Toolbar控件內(nèi)的Button對象時發(fā)生該事件。代碼通常利用Case語句及Button.Key來判定用戶按下了哪一個按鈕,以便能執(zhí)行相應(yīng)的程序代碼。
ButtonClick事件過程的語法為:
PrivateSubobject_ButtonClick(ByValbuttonAsButton)其中,object為Toolbar控件的名稱,button參數(shù)為用戶所單擊的按鈕,Button對象有個名稱為Key的屬性(對應(yīng)于“屬性頁”對話框中的“關(guān)鍵字”文本框),應(yīng)用程序通過Key屬性能夠知道用戶單擊了工具欄中的哪一個按鈕。若該工具按鈕為帶下拉式菜單的按鈕,則在ButtonMenuClick事件中編寫代碼,利用ButtonMenu.Key來判定用戶使用的是哪一個菜單項,其判斷值為Key欄的設(shè)置值。
2)?ImageList控件
ImageList控件能夠包含一組圖像,這些圖像可以被其他Windows公共控件使用,例如,在Toolbar控件的按鈕上顯示的所有圖像都可以用ImageList控件來存儲。將ImageList控件作為一個單一的圖像存儲庫能夠加快應(yīng)用程序的開發(fā)速度。其他控件可以使用ImageList對象中的位圖(.bmp)、光標(.cur)、圖標(.ico)、JPEG(?.jpg)或GIF(.gif)文件。其屬性窗口如圖8.13所示。圖8.13ImageList控件的“屬性頁”開發(fā)人員可以在設(shè)計應(yīng)用程序或運行應(yīng)用程序時向ImageList控件中添加或刪除圖像。ImageList對象具有通用的集合對象屬性Key和Index,還具有通用的集合方法Add、Remove和Clear。
3.程序?qū)崿F(xiàn)
1)界面設(shè)計與屬性設(shè)置工具欄的設(shè)計步驟如下:
(1)將Toolbar控件調(diào)入工具箱中。在窗體Form1中,增加一個文本框Text1作為文本輸入?yún)^(qū)。
(2)將工具箱中的Toolbar控件調(diào)入窗體,該控件會自動出現(xiàn)在窗體的上方,若窗體上已有菜單欄,則會固定在其下方。然后,可以利用Toolbar控件添加兩種不同類型的按鈕,即文字按鈕和圖形按鈕。
(3)設(shè)計文字按鈕。①用鼠標右鍵單擊窗體上的Toolbar1控件,在彈出的快捷菜單中選擇“屬性”。在“屬性頁”中選擇“按鈕”標簽,然后選擇“插入按鈕”,如圖8.14所示。圖8.14“插入按鈕”設(shè)置②在“標題”欄輸入想要顯示的文字標題,在“關(guān)鍵字”欄輸入關(guān)鍵字,在“工具提示文本”欄輸入提示文字,最后在“樣式”欄選擇合適的按鈕樣式(見圖8.14),建立“打開”Default樣式的工具按鈕。③重復(fù)步驟②,建立“粘貼”Check樣式的工具按鈕,如圖8.15所示。圖8.15“粘貼”按鈕設(shè)置④重復(fù)步驟②,建立“顏色”Dropdown樣式的工具按鈕。然后在“按鈕菜單”區(qū)選擇“插入按鈕菜單”按鈕,建立“顏色”按鈕的下拉式選項,如圖8.16所示。圖8.16“顏色”按鈕設(shè)置⑤運行程序,在窗體上可見已建好的工具欄界面,如圖8.17所示。
(4)設(shè)計圖形按鈕。制作圖形按鈕前須先準備好圖片,然后利用ImageList控件將按鈕圖片加入,再將Toolbar控件的“ImageList”項指定為ImageList控件,這樣就可以為每一個按鈕設(shè)置一個圖片了。圖8.17設(shè)計好文字按鈕的工具欄界面給圖8.17中的“打開”、“粘貼”和“顏色”按鈕加上圖片的具體步驟如下:①從工具箱中將ImageList控件調(diào)入窗體,如圖8.18所示。圖8.18調(diào)入ImageList控件②在ImageList1控件上單擊鼠標右鍵,調(diào)出快捷菜單,選擇“屬性”,然后選擇“屬性頁”的“圖像”標簽,再選擇“插入圖片”按鈕。調(diào)出“選擇圖片”對話框,從中將所有合適的圖片文件選中,再選擇“打開”,就可以將圖片調(diào)入ImageList1控件的圖像欄中,如圖8.19所示。圖8.19調(diào)入圖片③在已做好的Toolbar控件上單擊鼠標右鍵,調(diào)出快捷菜單,選擇“屬性”,然后選擇“屬性頁”的“通用”選項卡,在“圖像列表”欄選中ImageList1控件,如圖8.20所示。圖8.20選擇ImageList1控件④選擇Toolbar控件“屬性頁”上的“按鈕”選項卡,在“圖像”欄選擇ImageList1控件上的圖片作為按鈕上的圖片,如圖8.21所示。⑤單擊“確定”按鈕,完成設(shè)置。圖8.21選擇圖片
2)編寫代碼上面的步驟只能完成工具欄外觀的設(shè)計,如要點擊工具按鈕時執(zhí)行一定的功能,則必須為工具按鈕編寫相應(yīng)的事件過程。打開“代碼”窗口,在Toolbar1_ButtonClick事件過程中輸入以下代碼:
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"open"
MsgBox"選擇“打開”按鈕!"
Case"paste"
MsgBox"選擇“粘貼”按鈕!"
EndSelect
EndSub因為“顏色”按鈕為下拉式工具按鈕,其選項的代碼需由ButtonMenuClick事件激活,故在ButtonMenuClick事件過程中,對“顏色”工具按鈕編寫如下代碼:
PrivateSubToolbar1_ButtonMenuClick(ByValButtonMenuAsMSComctlLib.ButtonMenu)
SelectCaseButtonMenu.Key
Case"red"
Text1.ForeColor=vbRed
Case"blue"
Text1.ForeColor=vbBlue
EndSelect
EndSub
3)運行程序運行程序,結(jié)果如圖8.10所示。8.3狀態(tài)欄狀態(tài)欄通常位于窗體底部,它為用戶提供了當前的操作狀態(tài)、鍵盤狀態(tài)、數(shù)據(jù)庫表中數(shù)據(jù)使用情況等當前系統(tǒng)狀態(tài)以及環(huán)境狀態(tài)信息等。用戶在編寫VisualBasic6.0的應(yīng)用程序時可以添加狀態(tài)欄。案例5狀態(tài)欄的設(shè)計
1.學(xué)習(xí)目標定義一個狀態(tài)欄,在這個狀態(tài)欄上顯示字符串“狀態(tài)欄演示”,大寫字母鎖定鍵、數(shù)字鎖定鍵和插入鍵的狀態(tài),當前日期和當前時間。程序運行后,單擊狀態(tài)欄StatusBar1的“信息面板”,該面板中顯示“狀態(tài)欄演示”;單擊狀態(tài)欄StatusBar1的其他面板,消息框中顯示該面板的索引號。狀態(tài)欄同時顯示大寫字母鎖定鍵、數(shù)字鎖定鍵和插入鍵的狀態(tài),當前日期和當前時間。按一下大寫字母鍵(CapsLock鍵),大寫字母鍵面板中的文字CAPS由正常變?yōu)榛疑蛴苫疑優(yōu)檎o@示。操作數(shù)字鎖定鍵、插入鍵時有類似反應(yīng),如圖8.22所示。圖8.22狀態(tài)欄設(shè)計效果
2.相關(guān)知識
StatusBar控件提供了狀態(tài)欄功能,該控件由Panels集合構(gòu)成,最多可包含16個Panel對象,每個面板(又稱為窗格)都是一個Panel對象。每個面板中都可以顯示一個圖像或文本。
1)?StatusBar控件的屬性右擊StatusBar控件,從彈出的菜單中選擇“屬性”菜單項,打開“屬性頁”對話框,如圖8.23所示。使用該對話框,既可以添加Panel對象,也可以設(shè)置每個對象的各種屬性。圖8.23StatusBar控件的“屬性頁”對話框下面介紹幾個主要屬性。①“通用”選項卡?!駱邮剑河糜谥付顟B(tài)欄的樣式為簡單樣式還是正常樣式。當使用簡單樣式時,StatusBar控件只顯示一個面板,此時,使用該控件的SimpleText屬性設(shè)置要在面板中顯示的字符串的文本;當使用正常樣式時,StatusBar控件可以顯示多個面板,每個面板中顯示不同的信息?!裼行В褐该饔脩羰欠衲軌虿僮鳡顟B(tài)欄控件?!耧@示提示:指定當用戶將鼠標指針移動到狀態(tài)欄控件的面板中并稍微停留后是否顯示該面板的提示。②“窗格”選項卡?!袼饕褐付姘宓乃饕?從1開始編號),應(yīng)用程序能夠使用索引號訪問各個面板。●文本:指定當前定義面板中顯示的文本。該選項對應(yīng)于Panel對象的Text屬性?!窆ぞ咛崾疚谋荆褐付ó斢脩魧⑹髽酥羔樢苿拥皆撁姘逯胁⑸晕⑼A艉箫@示的該面板的提示。該選項對應(yīng)于Panel對象的ToolTipText屬性?!耜P(guān)鍵字:指定面板名稱。應(yīng)用程序可以通過該名稱訪問相應(yīng)的面板。該選項對應(yīng)于Panel對象的Key屬性?!褡钚挾龋褐付姘宓淖钚挾?。用戶調(diào)整面板寬度時,如果把面板寬度調(diào)整得小于該值,則系統(tǒng)自動將面板寬度恢復(fù)為此值。該選項對應(yīng)于Panel對象的MinWidth屬性?!癞斍皩挾龋好姘宓漠斍皩挾?。該選項對應(yīng)于Panel對象的Width屬性?!駥R:指定面板中文字的對齊方式。該選項對應(yīng)于Panel對象的Alignment屬性?!駱邮剑褐付姘宓臉邮?。該選項對應(yīng)于Panel對象的Style屬性,與StatusBar控件的Style屬性在意義和作用范圍上是不同的。其取值和功能如表8.4所示。表8.4面板樣式的值及其功能●斜面:設(shè)置面板的三維顯示效果。●自動調(diào)整大?。褐付ㄊ欠褡詣诱{(diào)整面板的寬度。該選項對應(yīng)于Panel對象的AutoSize屬性?!駡D片:用于指定面板中要顯示的圖像。單擊該按鈕后,顯示一個“選定圖片”對話框,從中指定所需的圖像文件。若要從面板中去掉圖像,可單擊“無圖片”按鈕?!裼行В褐付姘迨欠衲軌蚴褂谩!窨梢姡褐付姘迨欠耧@示出來。
2)?StatusBar控件的常用事件用戶單擊StatusBar控件上的某個面板時,觸發(fā)PanelClick事件。PanelClick事件過程的格式為:
PrivateSubobject_PanelClick(ByValpanelAsPanel)其中,object是StatusBar控件的名稱;panel指明用戶單擊了哪個面板,該參數(shù)由系統(tǒng)自動提供。應(yīng)該注意的是,當StatusBar控件的Style屬性被指定為簡單樣式時,隱藏了各個面板,此時,無論用戶單擊StatusBar控件的哪個區(qū)域,都不產(chǎn)生PanelClick事件。一般來說,SelectCase語句用于判斷用戶單擊了哪個面板。
3.程序?qū)崿F(xiàn)
1)界面設(shè)計與屬性設(shè)置操作步驟如下:
(1)創(chuàng)建一個標準EXE工程,將StatusBar控件添加到工具箱中。
(2)在窗體上放置一個名稱為StatusBar1的StatusBar控件,以定義該狀態(tài)欄上要顯示的窗格以及各窗格中顯示的信息。
(3)打開StatusBar1控件的“屬性頁”對話框,單擊“窗格”選項卡,在“工具提示文本”中填入“信息面板”,“關(guān)鍵字”設(shè)為“information”,“樣式”設(shè)為0,“最小寬度”設(shè)為1200。
(4)單擊“插入窗格”按鈕插入一個新的面板,然后單擊“索引”選項后面的右箭頭按鈕,顯示新面板的各種選項;在“工具提示文本”中填入“大寫字母鎖定鍵”,“樣式”設(shè)為1,“最小寬度”設(shè)為500。
(5)重復(fù)步驟(4),依次定義數(shù)字鎖定鍵、插入鍵的狀態(tài)、當前日期和當前時間面板,其“樣式”分別設(shè)為2、3、6、5,“最小寬度”分別設(shè)為500、500、1000、700。最后關(guān)閉“屬性頁”對話框。
2)編寫代碼打開“代碼”窗口,在StatusBar1_PanelClick事件過程中輸入以下代碼:
PrivateSubStatusBar1_PanelClick(ByValPanelAsMSComctlLib.Panel)
SelectCasePanel.Key
Case"information"
Panel.Text="狀態(tài)欄演示"
CaseElse
MsgBoxPanel.Index'顯示面板索引號
EndSelect
EndSub
3)運行程序運行程序,結(jié)果如圖8.22所示。8.4多重窗體和多文檔界面案例6系列產(chǎn)品報價單
1.學(xué)習(xí)目標設(shè)計一個電腦公司的報價單,從此報價單上可以查到某品牌微機的配置及價格。完成后的封面窗體如圖8.24(a)所示,建立的配置窗體1、配置窗體2、配置窗體3分別如圖8.24(b)、(c)、(d)所示。圖8.24系列產(chǎn)品報價單該程序的流程如下:
(1)顯示封面窗體。
(2)單擊“朝陽系列”命令按鈕,則顯示配置窗體1,同時封面窗體消失;單擊“旭日系列”命令按鈕,則顯示配置窗體2,同時封面窗體消失;單擊“月光系列”命令按鈕,則顯示配置窗體3,同時封面窗體消失。單擊“退出”按鈕,則程序結(jié)束。
(3)顯示某系列微機的配置窗體后,如果單擊“返回”按鈕,則配置窗體消失,顯示封面窗體。通過本案例的學(xué)習(xí),掌握多重窗體的設(shè)計方法。
2.相關(guān)知識多重窗體實際上是單一窗體的集合,也就是說,多重窗體由多個獨立的、單一的窗體構(gòu)成,其中每個單一窗體都有自己的界面和程序代碼,可完成不同的操作。利用多重窗體可以靈活地設(shè)計較復(fù)雜的多功能對話窗口,從而代替系統(tǒng)提供的標準對話框。同設(shè)計單一窗體一樣,多重窗體的程序設(shè)計也分為界面設(shè)計、編寫代碼和運行程序三個步驟。具體地說,首先通過“工程”中的“添加窗體”命令建立多個窗體,然后針對每個窗體進行界面設(shè)計、代碼編寫等,其方法與設(shè)計單一窗體相同。在多重窗體的設(shè)計中,常用Show方法及Hide方法對各窗體進行管理?!?Show方法用來自動裝入和顯示窗體,格式為:
[窗體名稱.]Show●?Hide方法使窗體隱藏,即不在屏幕上顯示,但仍在內(nèi)存中,格式為:
[窗體名稱.]Hide
3.程序?qū)崿F(xiàn)
1)界面設(shè)計與屬性設(shè)置操作步驟如下:
(1)新建窗體,再通過菜單欄的“工程”主菜單項,3次選擇“添加窗體”菜單項建立3個窗體,其名稱和標題屬性如表8.5所示。表8.5窗體名稱及標題屬性
(2)分別建立各個窗體上的控件并設(shè)置其屬性。首先,建立封面窗體。它是整個程序的門面,應(yīng)具有較強的藝術(shù)性和觀賞性,可采用一些精美的圖片作背景,本封面窗體由4個命令按鈕和1個標簽組成,完成后的封面窗體如圖8.24(a)所示。其次,在“工程資源管理器”窗口中選擇“SunForm”窗體,如圖8.25所示,修改其屬性建立配置窗體1。配置窗體1有一個返回按鈕,配置窗體上的文字可采用Print方法輸入。設(shè)計好后的配置窗體1如圖8.24(b)所示。類似地,可建立配置窗體2和配置窗體3,分別如圖8.24(c)和(d)所示。圖8.25“工程資源管理器”窗口
2)編寫代碼如前所述,程序代碼是針對每個窗體編寫的,其編寫方法與編寫單一窗體的相同。只要在項目窗口中選擇所需要的窗體文件,然后用鼠標左鍵雙擊它,就可進入相應(yīng)窗體的代碼窗口。①“封面窗體”有4個命令按鈕,其事件過程如下:
PrivateSubCommand1_Click() '單擊“朝陽系列”命令按鈕
SunForm.Show
FormCover.Hide
EndSub
PrivateSubCommand2_Click() '單擊“旭日系列”命令按鈕
BrightForm.Show
FormCover.Hide
EndSub
PrivateSubCommand3_Click() '單擊“月光系列”命令按鈕
MoonForm.Show
FormCover.Hide
EndSub
PrivateSubCommand4_Click() '單擊“退出”按鈕
End
EndSub②單擊“朝陽系列”配置窗體上“返回”命令按鈕的事件過程如下:
PrivateSubcmdSun_Click()
SunForm.Hide
FormCover.Show
EndSub③其余的配置窗體上“返回”命令按鈕的事件過程與②類似,請讀者自行設(shè)計。④運行程序。對于多重窗體來說,程序先從哪一個窗體開始執(zhí)行應(yīng)加以規(guī)定。對于多重窗體,VisualBasic規(guī)定必須通過如圖8.26所示的工程屬性窗口,在“啟動對象”中指定其中一個窗體作為啟動窗體;如未指定,就把設(shè)計時的第一個窗體作為啟動窗體。因此,圖8.26中“啟動對象”選擇為Formcover,作為顯示文本的第一個窗體。運行本程序,應(yīng)首先顯示“報價單”——封面窗體,然后按用戶的選擇顯示其他的配置窗體。圖8.26設(shè)置啟動窗體
3)運行程序運行程序,結(jié)果如圖8.24所示。案例7多文檔的簡易文本編輯器
1.學(xué)習(xí)目標創(chuàng)建一個具有多文檔的簡易文本編輯器,如圖8.27所示。圖8.27簡易文本編輯器對話框
2.相關(guān)知識多文檔界面MDI(Multi-DocumentInterface)是指在一個窗體中含有多個窗體,并可在各個窗體中顯示不同的文檔。在VB中要創(chuàng)建以文檔為中心的應(yīng)用程序,至少需要兩個窗體:一個MDI窗體和一個子窗體。一般來說,應(yīng)用程序可以包含許多相似或者樣式不同的MDI子窗體。也就是說,多重文檔是由“父窗口”和“子窗口”構(gòu)成的。在程序運行時,子窗體顯示在MDI父窗體工作空間之內(nèi)(其區(qū)域在父窗體邊框以內(nèi)及標題與菜單欄之下)。當子窗體最小化時,它的圖標顯示在MDI窗體的工作空間之內(nèi),而不是在任務(wù)欄中。如MicrosoftWord和MicrosoftExcel就是多文檔界面應(yīng)用程序,在Word啟動之后,可以通過“新建”操作打開多個文檔窗口,每個文檔窗口都可以編輯、處理一個文檔文件,所有文檔窗口都被限制在Word父窗口中,且彼此獨立。創(chuàng)建MDI應(yīng)用程序的一般步驟為:
(1)創(chuàng)建MDI窗體;
(2)創(chuàng)建MDI子窗體;
(3)編寫代碼,處理用戶操作以及MDI窗體與MDI子窗體之間的關(guān)系。
MDI窗體相當于具有一定限制條件的普通窗體。MDI窗體上只能放置那些具備Align屬性(如PictureBox控件、Toolbar控件等)的控件或那些沒有可視界面(如Timer控件)的控件,其他控件都不能直接放置到MDI窗體上。
1)?MDI的常見屬性、方法和事件
MDI所使用的屬性、方法和事件與單文檔界面基本沒有區(qū)別,但增加了一些專門用于MDI的屬性、方法和事件,如MDIChild屬性、Arrange方法、QuerryUnload事件。
(1)?MDIChild屬性。如果一個窗體的MDIChild屬性被設(shè)為True,則該窗體作為父窗體的子窗體,該屬性只能通過屬性窗口設(shè)置,不能在程序代碼中設(shè)置。在設(shè)置該屬性前,必須先定義MDI父窗體。
(2)?Arrange方法。Arrange方法是指用不同的方式排列MDI中的子窗體(或其圖標)。語法格式如下:
<MDIForm名>.Arrange<參數(shù)>其中,“MDIForm名”是指需要重新排列子窗體(或其圖標)的MDI窗體的名字;“參數(shù)”是一個整數(shù),表示所使用的排列方式,它有4個設(shè)置值,如表8.6所示。表8.6Arrange的參數(shù)設(shè)置值
(3)?QuerryUnload事件。QuerryUnload事件在關(guān)閉窗體或結(jié)束應(yīng)用程序之前發(fā)生,可以給用戶一個機會以保存窗體中的數(shù)據(jù)。當關(guān)閉MDI窗體時,首先在MDI窗體上發(fā)生QuerryUnload事件,然后在所有子窗體上發(fā)生。如果所有窗體上都沒有QuerryUnload事件,則在子窗體上發(fā)生Unload事件,然后在MDI窗體上發(fā)生Unload事件。
QuerryUnload事件在窗體關(guān)閉前被調(diào)用,因此常在QuerryUnload事件中編寫保護程序。
QuerryUnload事件的語法格式為:
PrivateSubForm_Quer
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國一次性內(nèi)衣面料數(shù)據(jù)監(jiān)測研究報告
- 二零二五版木材檢驗與質(zhì)量認證服務(wù)合同4篇
- 2025年唐山幼兒師范高等專科學(xué)校高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 臨床教學(xué)醫(yī)院合作詳細合同版B版
- 二零二四年度自建房施工竣工驗收合同協(xié)議3篇
- 2025-2030全球手持式表面粗糙度測量儀行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國柔印機網(wǎng)紋輥行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025至2031年中國兒童指甲鉗行業(yè)投資前景及策略咨詢研究報告
- 2025版事業(yè)單位項目合作聘用合同模板3篇
- 二零二五年度出軌離婚后雙方財產(chǎn)分割及債務(wù)清償協(xié)議4篇
- 《天潤乳業(yè)營運能力及風(fēng)險管理問題及完善對策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 農(nóng)民專業(yè)合作社財務(wù)報表(三張報表)
- 動土作業(yè)專項安全培訓(xùn)考試試題(帶答案)
- 大學(xué)生就業(yè)指導(dǎo)(高職就業(yè)指導(dǎo)課程 )全套教學(xué)課件
- 死亡病例討論總結(jié)分析
- 第二章 會展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標準規(guī)范
- 商戶用電申請表
評論
0/150
提交評論