




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——淺談VB60中的技巧淺談VB6.0中的實(shí)用技巧
VB6.0中文本框處理技巧
在VisualBasic中,文本框(TextBox)是最常用的控件,熟練運(yùn)用文本框
是開發(fā)出高質(zhì)量的應(yīng)用程序的基礎(chǔ)。筆者在從事應(yīng)用程序開發(fā)中,摸索出有關(guān)文本框的應(yīng)用技巧,寫出來與VB愛好者共享。1、設(shè)置只讀文本框。
有些時(shí)候在窗口顯示一段信息,但又不希望用戶去改變它,怎樣實(shí)現(xiàn)文本的只讀呢?首先,我們可以利用標(biāo)簽框(label)的只讀屬性,以標(biāo)簽來代替文本框以實(shí)現(xiàn)只讀屬性,但也可以用小程序?qū)崿F(xiàn)真正的文本框的只讀。SubText1_KeyPress(keyasciiAsInteger)keyascii=0EndSub
或者也可以用sendkey方法使文本框失去焦點(diǎn),如以下程序:SubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)SendKeys\EndSub
2、限定文本框的輸入內(nèi)容和格式。
以下程序可以實(shí)現(xiàn)限定文本框只能輸入數(shù)字:SubText1_KeyPress(keyasciiAsInteger)Ifkeyascii57ThenBeepBeep
johny@keyascii=0EndIfEndSub
若想限定文本框輸入格式,可以使用VB的FORMAT函數(shù),也可以使用專業(yè)版的屏蔽控件(MaskedEdit),通過設(shè)定屏蔽控件的Mask屬性可以對文本框的輸入格式作確切控制。
3、為TextBox創(chuàng)立快捷鍵。
VB規(guī)定,添加在窗體上的控件均在其Tabindex屬性中記載其加載順序,程序
運(yùn)行時(shí)焦點(diǎn)按Tabindex屬性規(guī)定的順序在控件間跳轉(zhuǎn)。而為了簡化操作,可VB中為任何具有caption的屬性的控制創(chuàng)立快捷鍵,這通過caption屬性中在想作為快捷鍵的字母前加&號實(shí)現(xiàn)。但有一個(gè)問題值得注意,而類似文本框這樣的控件無caption這樣的屬性,這時(shí)可將標(biāo)簽與文本框同時(shí)使用。為lable創(chuàng)立快捷鍵,標(biāo)簽Tabindex屬性設(shè)置比文本框小1,又由于label不能接收按點(diǎn),焦點(diǎn)會自動跳至文本框。這相當(dāng)于為文本框創(chuàng)立了快捷鍵。具體步驟如下:
(1)首先繪制標(biāo)簽,再繪制文本框?;螂S意繪制各種控制,將標(biāo)簽Tabindex屬性設(shè)置比文本框小1
(2)在標(biāo)簽的caption屬性中使用“&〞號設(shè)定快捷鍵
這樣就相當(dāng)于為文本框設(shè)定了快捷鍵,當(dāng)你按下標(biāo)簽框的快捷鍵時(shí),焦點(diǎn)就會跳至文本框上。
4、在設(shè)計(jì)時(shí)實(shí)現(xiàn)文本框換行。
對于文本框,在設(shè)計(jì)時(shí)properties窗口不能輸入換行符,但可以再程序執(zhí)行時(shí)
用代碼來換行,即使用ASCII字符的13和10,如以下小程序就可將兩行文本放入文本框:Subform_load()NL=chr(13)+chr(10)
text1.text=“mynameis〞&NL&“l(fā)iuqiang〞Endsub
5、創(chuàng)立口令文本框。
創(chuàng)立口令文本框可用設(shè)置屬性的方法,也可以通過調(diào)用WINDOWS的API應(yīng)用函數(shù)接口來實(shí)現(xiàn)。首先,文本框的屬性Passwordchar和maxlength可用來設(shè)置口令框。其中Passwordchar指定文本框顯示的字符,如指定“*〞,則在文本框內(nèi)顯示“*〞,
Maxlength確定文本框中能輸入幾個(gè)字符。超過Maxlength以后,文本框發(fā)出警告聲,不能接收更多的字符。若使用WINDOWS應(yīng)用函數(shù)接口,可用GetWindowLong、SetWindowsLong和SendMessage等接口函數(shù)來實(shí)現(xiàn),有興趣的讀者可查閱WindowsAPI函數(shù)手冊或VB的聯(lián)機(jī)幫助文件就可以了。
改變ListIndex而不發(fā)生Click事件
在修改Combo或Listview的ListIndex時(shí),會發(fā)生Click事件,下面的函數(shù)可以阻止該事件。聲明:
PrivateDeclareFunctionSendMessageLib_\hWndAsLong,ByValwMsgAsLong,ByVal_wParamAsLong,lParamAsAny)AsLongConstCB_GETCURSEL=&H147ConstCB_SETCURSEL=&H14EConstLB_SETCURSEL=&H186ConstLB_GETCURSEL=&H188
函數(shù):
PublicFunctionSetListIndex(lstAsControl,_ByValNewIndexAsLong)AsLong
IfTypeOflstIsListBoxThenCallSendMessage(lst.hWnd,_LB_SETCURSEL,NewIndex,0&)
SetListIndex=SendMessage(lst.hWnd,_LB_GETCURSEL,NewIndex,0&)ElseIfTypeOflstIsComboBoxThenCallSendMessage(lst.hWnd,_CB_SETCURSEL,NewIndex,0&)
SetListIndex=SendMessage(lst.hWnd,_CB_GETCURSEL,NewIndex,0&)
EndIf
EndFunction
調(diào)整Combo下拉部分的寬度聲明:
PrivateDeclareFunctionSendMessageLib_\
(ByValhwndAsLong,ByValMsgAsLong,_
ByValwParamAsLong,ByVallParamAsLong)AsLongPrivateConstCB_GETDROPPEDWIDTH=&H15FPrivateConstCB_SETDROPPEDWIDTH=&H160PrivateConstCB_ERR=-1函數(shù):
'取得Combo下拉的寬度
'可以利用該函數(shù)比例放大或縮小寬度
PublicFunctionGetDropdownWidth(cboHwndAsLong)AsLongDimlRetValAsLong
lRetVal=SendMessage(cboHwnd,CB_GETDROPPEDWIDTH,0,0)IflRetValCB_ERRThenGetDropdownWidth=lRetVal'單位為pixelsElse
GetDropdownWidth=0EndIf
EndFunction
'設(shè)置Combo下拉的寬度'單位為pixels
PublicFunctionSetDropdownWidth(cboHwndAs_Long,NewWidthPixelAsLong)AsBooleanDimlRetValAsLong
lRetVal=SendMessage(cboHwnd,_
CB_SETDROPPEDWIDTH,NewWidthPixel,0)IflRetValCB_ERRThenSetDropdownWidth=TrueElse
SetDropdownWidth=FalseEndIf
EndFunction
Combo的自動查詢技術(shù)
DeclareFunctionSendMessageLib\(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
PublicConstCB_FINDSTRING=&H14CPrivateSubCombo1_Change()DimiStartAsInteger
DimsStringAsStringStaticiLeftOffAsIntegeriStart=1
iStart=Combo1.SelStartIfiLeftOff0Then
Combo1.SelStart=iLeftOffiStart=iLeftOffEndIf
sString=CStr(Left(Combo1.Text,iStart))
Combo1.ListIndex=SendMessage(Combo1.hwnd,_B_FINDSTRING,-1,ByValCStr(Left(_ombo1.Text,iStart)))
IfCombo1.ListIndex=-1TheniLeftOff=Len(sString)combo1.Text=sStringEndIf
Combo1.SelStart=iStartiLeftOff=0EndSub
靜態(tài)變量iLeftOff指定了字符長度。自動選擇Text的內(nèi)容
在使用VFP的應(yīng)用進(jìn)行錄入時(shí),每進(jìn)入一個(gè)錄入框,就自動選擇該框中的所有內(nèi)容。利用以下的代碼,也可實(shí)現(xiàn)類似的功能。PrivateSubMyTextBox_GotFocus()AutoSelectMyTextBoxEndSub
SubAutoSelect(SelObjectAsControl)SelObject.SelStart=0
IfTypeOfSelObjectIsMaskEdBoxThen
SelObject.SelLength=Len(SelObject.FormattedText)Else
IfTypeOfSelObjectIsTextBoxThen
SelObject.SelLength=Len(SelObject.Text)EndIfEndIfEndSub
捕捉MouseExit事件
MouseDown、MouseUp、MouseMove。VB似乎提供了很好的Mouse事件。但好象還缺少什么!對!還差MouseExit(鼠標(biāo)移出)事件。在VB中,我們要捕捉MouseExit事件,必須用API函數(shù):
PrivateDeclareFunctionSetCaptureLib\AsLongPrivateDeclareFunctionReleaseCaptureLib\
然后,我們可以在控件(以Picture1為例)的MouseMove事件上加上以下代碼:DimMouseExitAsBoolean
MouseOver=(03、FilelistBox文件列表控件
雙擊文件列表控件,在窗體上調(diào)準(zhǔn)控件的位置和尺寸,控件名稱為“Filel〞,修改“Pattern〞屬性為“*.bmp,*.pcx〞。4、CommandButtom命令按鈕控件
雙擊命令按鈕控件,建立命令按鈕,第一個(gè)取名為Command1,修改Caption屬性為“確認(rèn)〞,其次個(gè)取名為Command2,修改Caption屬性為“取消〞。5、顯示影像的控件
既可以選picture控件,也可選image控件顯示圖像,以image控件為例。雙擊image控件,調(diào)準(zhǔn)矩形框的大小和位置,取名為imagel,設(shè)置strtch屬性。Strech=false時(shí),圖形以原尺寸顯示。二、事件過程的建立1、驅(qū)動器更改事件過程SubDrive-change()①Dirl.Path=Drivel.Drive②ChDrive.Path=Drivel.DriveEndSub
其中①當(dāng)驅(qū)動器發(fā)生更改時(shí),改變目錄路徑;②更改路徑。2、目錄更改事件過程SubDirlchange()Filel.Path=Dirl.PathEndSub
該事件過程是對目錄發(fā)生更改時(shí),作出文件路徑更改的響應(yīng)。3、文件列表單擊事件SubFilel-click()
Imagel.Picture=loadpicture(Filel.path+〞\〞+Filel.FileName)EndSub
單擊任一圖形文件名時(shí),在image控件框上顯示圖像。4、命令按鈕控件
SubCommand1-click()
F1$=Filel.Path+〞\〞+FileNameEndEndSub
SubCommand2-click()F1$=〞〞EndSub
F1$為選擇文件名稱,供軟件使用,若用戶單擊“取消〞按鈕,F(xiàn)1$為空串。單擊驅(qū)動器名可以改變驅(qū)動器,單擊目錄列表中某一目錄可以更改目錄,單擊某一圖形文件可以顯示圖形,在文件列表中按“↑〞或“↓〞鍵,可以隨著文件名的變化,圖像框中的圖形也隨之發(fā)生更改。
F1$可以供應(yīng)用程序調(diào)用,其中包含驅(qū)動器名、目錄和文件名。VB6.0網(wǎng)格中輸入數(shù)據(jù)
VISUALBASIC提供的網(wǎng)格控制(Grid)主要是用來直觀地輸出數(shù)據(jù),但不能
輸入數(shù)據(jù),使用起來很不便利。能不能向網(wǎng)格中輸入數(shù)據(jù)呢?筆者提出了兩種解決方法,供大家參考:
方法一:
改寫網(wǎng)格的KeyPress事件,在每次有合法字符輸入時(shí),把Grid的Text項(xiàng)和輸入字符連接。這種方法缺點(diǎn)是:一代碼較繁雜,需要處理各種ASCII字符信息;二是通過編程只能實(shí)現(xiàn)很少的編輯功能,如用退格鍵刪除前一字符,用Del鍵刪除所有字符;三是這種方法不能輸入漢字,使用起來受到很大的限制。方法二:
利用一文本框作為緩沖,實(shí)現(xiàn)編輯功能。當(dāng)網(wǎng)格改變行列時(shí),把網(wǎng)格當(dāng)前行列的內(nèi)容傳遞給文本框;當(dāng)網(wǎng)格中有ASCII字符產(chǎn)生時(shí),把輸入焦點(diǎn)設(shè)置為文本框,并把輸入的ASCII字符送給文本框;當(dāng)編輯完文本框的內(nèi)容時(shí),按Enter鍵或TAB鍵,把文本框的內(nèi)容送給網(wǎng)格的當(dāng)前行列,并把輸入焦點(diǎn)設(shè)置為網(wǎng)格。如下程序所示(其中Textl為文本框,Labell為標(biāo)簽,Gridl為網(wǎng)格):OptionExplicit
ConstEnterAsc=13ConstTabAsc=9
PrivateSubForm-Load()Labell.Caption=〞請輸入〞EndSub
PrivateSubGridl-KeyPress(KeyAsciiAsInteger)Text1.StFocusTextl.SelStart=0
IfKeyAscii<>EnterAscAndKeyAscii<>TabAscThenSendKeysChr(KeyAscii)EndIFEndSub
PrivateSubGridl-RowColChange()Textl.Text=Grid1.TextEndSub
PrivateSubText1-KeyPress(KeyAsciiAsInteger)IfKeyAscii=EnterAscThenGrid1.SetFocusKeyAscii=0EndIfEndSub
PrivateSubText1-LostFocus()Grid1.Text=Text1.TextEndSub
如何使VB的網(wǎng)格控件具有輸入功能
我們在使用VisualBasicforWindows開發(fā)時(shí),經(jīng)常用到網(wǎng)格控件(Grid.vbx),
由于此控件可以用來作類似于電子表格形式的輸出表,且編程簡單,但在此網(wǎng)格控件只有輸出功能,而不能直接在網(wǎng)格上輸入,這給使用者帶來一些不便。如何在執(zhí)行時(shí)向網(wǎng)絡(luò)控件中輸入數(shù)據(jù),人們使用了一些方法,但大都使用一文本控件作中間轉(zhuǎn)換,即將欲輸入的信息先輸入到該文本控件,然后將文本控件的TEXT屬性賦給網(wǎng)格的TEXT屬性,這種方法盡管解決了向網(wǎng)格輸入數(shù)據(jù)問題,但增加了一文本框,對界面有些不
美觀,修改部分?jǐn)?shù)字不便利,且影響速度,那么,如何直接向網(wǎng)格輸入數(shù)據(jù)呢?本文將解決直接向網(wǎng)格輸入數(shù)據(jù)問題,基本思想是:使用網(wǎng)格控件KeyPress事件,從鍵盤上接收所擊鍵位的KeyAscii值,再由Chr$()或Chr()函數(shù)轉(zhuǎn)換成字符,
然后讀出網(wǎng)格單元的當(dāng)前Text值與由鍵盤接收到的字符相加,組成新的字符串,再賦給該單元的Text屬性,即Grid.Text=Grid.Text+Chr$(KeyAscii)。程序清單如下:程序中定義了兩個(gè)Form級變量WgridCol%和WgridRow%。SubGrid-KeyPress(KeyAsciiasInteger)Grid.Col=WgridCol%Grid.Row=WgridRow%
ifKeyAscii=8Then`keyascii=8為退格刪除鍵ifGrid.Text<>〞〞ThenGrid.Text=Mid$(Grid.Text,1,Len(Grid.Text)-1)‘刪除最終一個(gè)字符Else
Grid.Text=Grid.Text+Chr$(KeyAscii)EndifEndSub
SubGrid-RowColChange()Wgrid.Col%=Grid.ColWgrid.Row%=Grid.RowEndSub
這樣就可以實(shí)現(xiàn)對網(wǎng)格的任意輸入,可以輸入字符、數(shù)字等等。由于數(shù)字0到9的Ascii值為48到57,小數(shù)點(diǎn)Ascii的值為46,所以可以輸入任意實(shí)數(shù)。若您想防止用戶輸入除數(shù)字、小數(shù)點(diǎn)以外的任何其他字符,可對來自于鍵盤的Ascii值進(jìn)行判斷,有條件地接收,就實(shí)現(xiàn)了僅輸入數(shù)值字符。同理也可以限制只輸入字母字符。
根據(jù)這種思想,也可以對VB中一切不具有輸入功能,但具有KeyAscii或者KeyDown事件的控件進(jìn)行直接輸入,如標(biāo)簽Label等。
防止文本控件中的部分滾動
大家知道,WindowsAPI的SendMessage函數(shù)可以用來向VisualBasic
控件中發(fā)送消息,例如向文本框控件上發(fā)送消息?,F(xiàn)介紹如何利用該函數(shù)防止文本框控件中的部分文本滾動,即該控件中不能滾動的部分不能被用戶看見。發(fā)送消息到文本框控件
VisualBasic中的文本框控件就是一個(gè)最小化的字處理程序。當(dāng)該文本
控件的MultiLine屬性被設(shè)置為True的時(shí)候,則文本可以自動換行;當(dāng)在文本框控件中鍵入了大量文本時(shí),控件中的文本會向上滾動。這時(shí)文本就變得看不到了,但這些文本實(shí)際上依舊在控件中——它們并沒有被刪除。
WindowsAPI的SendMessage函數(shù)可以用來防止文本框控件中的文本滾動因而超出我們的視線。當(dāng)創(chuàng)立該文本框控件時(shí),它的客戶區(qū)域格式化為一個(gè)矩形(該區(qū)域就是鍵入文本的地方),可以給該控件發(fā)送EM_SETRECTNP消息,對該矩形區(qū)域進(jìn)行限制,以在文本框的客戶區(qū)域中指定一個(gè)特定區(qū)域。在下面的樣例程序中,我們希望文本控件的后一半原封不動地保持完整,
即不希望文本滾動而超出視線。可以從文本框控件的Height屬性中提取出它的高度,并將該值除以2,得到該文本框控件后一半的坐標(biāo)。然后將該結(jié)果傳遞給SendMessage函數(shù),告訴EM_SETRECTNP防止該矩形區(qū)域滾動。
有些程序員可能會希望使用EM_SETRECT消息代替EM_SETRECTNP消息。但是,使用EM_SETRECT消息會中止Windows對該格式化矩形區(qū)域中的文本的重新繪制,導(dǎo)致文本框控件中的文本會看不到。
樣例程序
該程序顯示了如何臨時(shí)凍結(jié)一個(gè)文本框控件中的特定部分,該部分包含的文本不能滾動,因而不會超出視線之外。
1.在VisualBasic中開始一個(gè)新的工程,采用缺省的方法建立Form1。
2.將如下常量和聲明語句添加到Form1的通用聲明部分中(注意該聲明語句需要書寫在一行內(nèi)):
PrivateDeclareFunctionSendMessageLib\(ByValhWndAsInteger,ByValwMsgAsInteger,ByValwParamAsInteger,lParamAsAny)AsLongConstWM_USER=&H400
ConstEM_SETRECTNP=WM_USER+4ConstEM_SETRECT=WM_USER+3
對于32位環(huán)境下使用VisualBasic5.0的用戶,需要將如下聲明語句添加到Form1的通用聲明部分中:
PrivateDeclareFunctionSendMessageLib\Alias\
wMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLongConstEM_SETRECTNP=&HB4ConstEM_SETRECT=&HB3
3.將如下代碼添加到Form1的Form_Load事件中:PrivateSubForm_Load()
Text1.Text=\這是我們希望顯示出來的第一段\Text1.Text=Text1.Text&\它位于文本框控件中\(zhòng)
Text1.Text=Text1.Text&Chr$(13)&Chr$(10)&\這是其次段,我們\Text1.Text=Text1.Text&\希望將之凍結(jié)以使文本不能滾動\EndSub
4.將如下代碼添加到Form1的Click事件中:PrivateSubForm_Click()DimRAsRECTDimXAsLongScaleMode=3R.Left=0R.Top=0
R.Right=Text1.Width
R.Bottom=Text1.Height/2
X=SendMessage(Text1.hWnd,EM_SETRECTNP,0,R)EndSub
5.創(chuàng)立一個(gè)新的模塊。采用缺省的方法建立Module1.Bas。6.將如下TYPE結(jié)構(gòu)添加到Module1.Bas中:TypeRECT
LeftAsIntegerTopAsIntegerRightAsIntegerBottomAsIntegerEndType
對于32位環(huán)境下使用VisualBasic5.0的用戶,需要將如下TYPE結(jié)構(gòu)添加到Module1.Bas中:TypeRECTLeftAsLongTopAsLongRightAsLongBottomAsLongEndType
7.在Form1上添加一個(gè)文本框控件,采用缺省的方法建立Text1,將其MultiLine屬性設(shè)置為True。
按下F5來執(zhí)行該程序,我們可以看到文本框顯示在Form1上。在窗體上單擊一次
鼠標(biāo),將新的文本鍵入到該文本框控件中。這時(shí)我們可以注意到,當(dāng)我們在文本框控件的開頭處鍵入新的文本時(shí),在文本框控件下半部分的文本不會滾動。
假使我們將EM_SETRECT消息替代EM_SETRECTNP消息發(fā)送給文本框,再次運(yùn)行該程序,這時(shí)我們會發(fā)現(xiàn),文本框的下半部分顯示不出來,盡管實(shí)際上文本依舊是存儲在控件中的。
防止用戶編輯文本框控件中的內(nèi)容
VisualBasic中的文本框控件允許用戶在其中鍵入文本,以便在程序中使用。
相反,程序員可能會希望顯示一些文本但不希望用戶編輯該文本。本文介紹了如何創(chuàng)立只讀的文本框控件的內(nèi)容。使一個(gè)文本框控件只讀
在VisualBasic中,假使文本框控件的MultiLine屬性設(shè)置為True,文本將會自動地?fù)Q行到下一行。另外,假使文本框控件的ScrollBars屬性設(shè)置為3-Both(或者1-Vertical,或者2-Horizontal),用戶還能夠滾動控件中的內(nèi)容。
程序員要想實(shí)現(xiàn)文本框控件中的文本不可編輯,可將文本框控件中的內(nèi)容設(shè)置為只讀狀態(tài),這可以通過使用MicrosoftWindows應(yīng)用程序編程接口(API)的SendMessage函數(shù)來實(shí)現(xiàn)。SendMessage函數(shù)可以用來發(fā)送一個(gè)EM_SETREADONLY消息到文本框控件中,這將使文本框控件變?yōu)橹蛔x。
要在程序中使用該SendMessage函數(shù),需要將如下的聲明語句包含在項(xiàng)目的通用聲明部分中(注意該聲明語句需要書寫在一行內(nèi)):
PrivateDeclareFunctionSendMessageLib\ByValwMsgAsLong,ByValwParamAsInteger,ByVallParamAsLong)AsLong該SendMessage函數(shù)需要4個(gè)參數(shù),如下所示:hwnd一個(gè)長整數(shù)值,它包含文本框控件的句柄。
wMsg一個(gè)長整數(shù)值,它包含被發(fā)送的消息,在這個(gè)例子里,是EM_SETREADONLY。wParam一個(gè)整數(shù)值,假使它為True,則控件被設(shè)置只讀標(biāo)記,假使它為False,則刪除控件的只讀標(biāo)記。
lParam一個(gè)長整數(shù)值,它應(yīng)當(dāng)被設(shè)置為0(EM_SETREADONLY不使用它)。在程序運(yùn)行了此SendMessage函數(shù)之后,將返回一個(gè)長整數(shù)值,指明調(diào)用成功(返回值非0)或是失?。ǚ祷刂禐?)。
樣例程序
該程序顯示了如何防止用戶編輯一個(gè)文本框控件中的內(nèi)容。
1.在VisualBasic中開始一個(gè)新的工程,采用缺省的方法建立Form1。
2.將如下的常量和聲明語句添加到Form1的通用聲明部分中(注意該聲明語句需要書寫在一行內(nèi)):
PrivateDeclareFunctionSendMessageLib\(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsInteger,ByVallParamAsLong)AsLongConstWM_USER=。
所以假使想要將RichTextBox中被選取的內(nèi)容復(fù)制到剪貼簿,只要對RichTextBox送出WM_COPY信息即可,以下是程序撰寫上的細(xì)節(jié):1.API函數(shù)的聲明式:ConstWM_PASTE=&H302ConstWM_CUT=&H300ConstWM_COPY=&H301
PrivateDeclareFunctionSendMessageLib\ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
注:假使以上的聲明放在「一般模塊」底下,應(yīng)在Const之前加上Public保存字,并且將Private保存字去掉。2.調(diào)用例:
SendMessageRichTextBox1.hWnd,WM_COPY,0,ByVal0&
在ListBox之中,如何檢測鼠標(biāo)所在位置的選項(xiàng)?
我們可以利用ListIndex屬性得知ListBox的選項(xiàng),但是當(dāng)鼠標(biāo)移到某一個(gè)選項(xiàng)上面(但還沒有選取),如何得知此一選項(xiàng)呢?方法是對ListBox送出LB_ITEMFROMPOINT信息,細(xì)節(jié)如下:
1.API的聲明:
ConstLB_ITEMFROMPOINT=&H1A9
PrivateDeclareFunctionSendMessageLib\ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
注:假使以上的聲明放在「一般模塊」底下,應(yīng)在Const之前加上Public保存字,并且將Private保存字去掉。
2.調(diào)用例:(在表單上布置一個(gè)TextBox及一個(gè)ListBox,然后利用MouseMove事件程序來檢測鼠標(biāo)所在位置的選項(xiàng))
PrivateSubList1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)DimposAsLong,idxAsLong
pos=X/Screen.TwipsPerPixelX+Y/Screen.TwipsPerPixelY*65536idx=SendMessage(List1.hwnd,LB_ITEMFROMPOINT,0,ByValpos)'idx即等于鼠標(biāo)所在位置的選項(xiàng)
IfIdx0Then
ReDimbArr(length+1)AsByte,bArr2(length-1)AsByte
CallRtlMoveMemory(bArr(0),length,2)
CallSendMessage(hWnd,EM_GETLINE,whichLine,bArr(0))CallRtlMoveMemory(bArr2(0),bArr(0),length)Line=StrConv(bArr2,vbUnicode)ElseLine=\EndIfEndSub
'假設(shè)要讀取Text1第5行的資料DimSAsString
CallTB_GetLine(Text1.hWnd,5,S)'傳回值S即等于到5行的資料注:TextBox的行次是從0起算。
在VB中用定時(shí)控件實(shí)現(xiàn)長定時(shí)操作
Timer控件可用來在一定時(shí)間間隔執(zhí)行操作,然而,一個(gè)Timer控件的時(shí)間間隔取值最大為64.767毫秒,這意味著即使最長的時(shí)間間隔也不比一分鐘長多少(大約64.8秒),也就是說一個(gè)Timer控件只能響應(yīng)大約一分鐘之內(nèi)的事件。假使要響應(yīng)長時(shí)間的事件,例如,要開發(fā)一個(gè)學(xué)習(xí)系統(tǒng)的自我測試或考試過程,需要限制一個(gè)考試時(shí)間,一般都在10~150分鐘,開始自動計(jì)時(shí),時(shí)間到報(bào)警考試終止。則需多個(gè)Timer控件協(xié)同使用,這樣做顯得既繁瑣又不實(shí)用。其實(shí),可以只用一個(gè)Timer控件,在其Timer過程中使用一個(gè)計(jì)數(shù)器,從而響應(yīng)任意長時(shí)間間隔的事件。
下面是一個(gè)定時(shí)實(shí)例的部分代碼:控件
屬性設(shè)置的值Label1Caption
″請輸入限定時(shí)間(分鐘):″Text1Text″\
Command1Caption″確認(rèn)″Timer1Interval60000EnabledFalse
在窗體通用模塊General里聲明N、T兩個(gè)變量,N作為計(jì)數(shù)器,T用來存放限定時(shí)間。DIMNASIntegerDIMTASString
Command1-Click()
T=Text1.Text
Timer1.Enabled=True??EndSub
Timer1-Timer()N=N+1
ifn=val(T)ThenBeep
Timer1.Enabled=FalseEndifEndSub
將定時(shí)器的Interval屬性值設(shè)為60000,使得計(jì)數(shù)器每分鐘加1,當(dāng)然也可以設(shè)置為其他的值,如1000,這樣就使得計(jì)數(shù)器每秒鐘加1,但這樣要浪費(fèi)較多的系統(tǒng)時(shí)間。
處理多個(gè)具有一致要求的控件
我們往往有時(shí)需要處理多個(gè)具有一致特性的控件,如:把100個(gè)Text及Label的內(nèi)容加起來。這時(shí),我們可以使用下面的技巧:
1.假使是同一種類型的控件,我們可以使用控件組達(dá)到目標(biāo)。
2.假使不是同一類型控件,控件組就無法使用,這時(shí),我們還可以利用控件的Tag性,我們可以把每個(gè)控件設(shè)置一個(gè)Tag標(biāo)志。在程序中,我們可以用下面代碼來觀測是否是我們需要的控件:
ForI=0ToControls.Count-1
IfControls(I).Tag=\NextI
輸入限制確認(rèn)
在某些應(yīng)用程序中,我們需要限制在文本框或其它一些控件中只能輸入數(shù)字或一些特定的字符,現(xiàn)在我們可以通過下面的一個(gè)函數(shù)來實(shí)現(xiàn)此功能:
FunctionValiText(KeyInAsInteger,ValidateStringAsString,EditableAsBoolean)AsIntegerDimValidateListAsStringDimKeyOutAsIntegerIfEditable=TrueThen
ValidateList=Ucase(ValidateString)&Chr(8)Else
ValidateList=Ucase(ValidateString)EndIf
IfInStr(1,ValidateList,Ucase(Chr(KeyIn)),1)>0ThenKeyOut=KeyInElse
KeyOut=0BeepEndIf
ValiText=KeyOutEndFunction
在工程中參與此函數(shù)后,你就可以使用它了。
方法:在需要限制輸入的控件的KeyPress參與以下代碼:
KeyAscii=ValiText(Keyascii,\
現(xiàn)在你就可以過慮掉你不希望的字符了。在此例中,我們只接受其次個(gè)參數(shù)提供的字符,即:\
而此函數(shù)的第三個(gè)參數(shù)就決定了能否使用[Backspace]鍵。最終值得一提的是此函數(shù)對大小寫是不敏感的。
利用VB的圖片框?qū)崿F(xiàn)屏幕的滾動
對于學(xué)習(xí)使用VB來編程的電腦愛好者來說,可能會遇到這樣一個(gè)問題:就是如何實(shí)現(xiàn)屏幕的滾動,由于當(dāng)要顯示的內(nèi)容超出了屏幕的大小后,利用VB所提供的垂直滾動條和水平滾動條等控件是不可能直接實(shí)現(xiàn)這一特別顯示功能的。那么有沒有其它的方法呢?答案是確定的。我們知道VB的圖片框是用來顯示圖形的,但它還有大量其它用途,譬如可以用來創(chuàng)立一些動畫圖形等。其實(shí)對于上面的問題我們也可以利用圖片框來巧妙地解決。方法如下:首先,單擊工具框中的圖片框(PictureBox)控件和命令按鈕控件,在窗體(Form1)上建立圖片框?qū)ο驪icture1和命令按鈕對象Command1,將命令按鈕的Caption屬性設(shè)置為\退出\,Picture1的大小設(shè)置為顯示區(qū)域的大小,再單擊工具框中的圖片框控件,在Picture1上建立另一個(gè)圖片框?qū)ο驪icture2,將它的Left和Top屬性設(shè)置為0。用文本框,標(biāo)簽框等其它控件或?qū)胍环鶊D象在Picture2上設(shè)定具體的顯示內(nèi)容,當(dāng)然Picture2的大小一定要先調(diào)整到能全部容納所有要顯示的內(nèi)容,最終單擊工具框中的垂直滾動條控件和水平滾動條控件,在窗體(Form1)上分別建立垂直滾動條對象VScroll1和水平滾動條對象HScroll1,并設(shè)置好它們的屬性。至此在窗體(Form1)上的所有設(shè)置工作就完成了,下面是具體的程序代碼:PrivateSubVScroll1_Change()Picture2.Top=-VScroll1.ValueEndSub
PrivateSubHscroll1_Change()Picture2.Left=-HScroll1.ValueEndSub
PrivateSubCommand1_Click()EndEndSub
運(yùn)行程序,當(dāng)按下橫、豎滾動條時(shí),就能使顯示內(nèi)容實(shí)現(xiàn)左右、上下的滾動。此方法簡單易行,有興趣的朋友不妨試一試。VB中陰影字體的實(shí)現(xiàn)
VisualBasic確實(shí)是一種很不錯的應(yīng)用程序開發(fā)工具。筆者在使用中,也確實(shí)感到用VB設(shè)計(jì)程序,大量方法的實(shí)現(xiàn)是那么的簡單。有時(shí),僅僅需要幾條語句,就可實(shí)現(xiàn)一種方法、效果或功能。下面就介紹一下,陰影字體在VB中的實(shí)現(xiàn)。程序如下:PrivateSubForm-Click()CurrentX=700CurrentY=1000FontSize=30
ForeColor=QBColor(8)Print〞SoftwareWeekly〞CurrentX=750CurrentY=1050FontSize=30
ForeColor=QBColor(12)Print〞SoftwareWeekly〞EndSub
在屬性(properties)窗口中設(shè)置:Auto3D為trueFont選一種TrueType字體。
該程序是把代碼加到Form的Click事件中,通過先打印字體的陰影部分,再打印出字體,以實(shí)現(xiàn)陰影字體效果的。試運(yùn)行該程序,單擊窗體后,即浮現(xiàn)出陰影字體SoftwareWeekly。在VB中制作單獨(dú)程序封面的兩種方法這里所謂的單獨(dú)封面,是只獨(dú)立應(yīng)用程序窗口本身的一個(gè)窗口,這個(gè)窗口在程序運(yùn)行時(shí)首先彈出屏幕,用于裝飾程序本身,或簡單的演示一下程序的優(yōu)越性。這樣的封面在好多專業(yè)的WINDOWS程序中均存在,在VB中可有兩種簡單的方法實(shí)現(xiàn)這一功能。第一種方法:多窗體編程方法
此方法是尋常采用的方法,即在程序中創(chuàng)立兩個(gè)或兩個(gè)以上的Form窗體,把其中的一個(gè)作為專門的程序封面制作場所,具體方法:
1、創(chuàng)立一個(gè)新項(xiàng)目Form1,并在此窗體內(nèi)安放Command1命令按鈕,在Command1-Click()事件中輸入終止程序代碼“END〞。
2、單擊菜單的“Insert\項(xiàng)目,參與一個(gè)新窗體Form1。
3、雙擊Form1窗體空白處,在Form1-Load()事件中輸入如下代碼,用于隱蔽主窗體Form1,置其次窗體為最大模式,并在運(yùn)行程序首先顯示和二窗體:PrivateSubForm-Load()’隱蔽主窗口Form1.Visible=0’窗口2最大模式Form2.WindowState=2’顯示窗口2Form2.ShowEndSub
4、在窗體Form2中定義全程變量:Dimstrr1AsStringDimIAsInteger
5、在窗體Form2中放入一個(gè)時(shí)間控件Timer1。
6、在窗體Form2中的Form-Load()事件中輸入以下代碼,用于在窗體2中顯示圖像,并置時(shí)間控件頻率:
PrivateSubForm-Load()
Form2.Picture=LoadPicture(\Timer1.Interval=10I=0EndSub
7、在時(shí)間控件Timer1-Timer1()事件中進(jìn)行程序封面的制作工作,演示簡單的動畫,并控制此動畫運(yùn)行一段時(shí)間后自動中止,關(guān)閉程序封面,返回程序主窗口;下面的代碼實(shí)現(xiàn)在一個(gè)圖片上隨機(jī)顯示字符串,顯示30次字符串后自動退出。PrivateSubTimer1-Timer()Strr1=\程序封面演示“WithForm2
.Font.Transparent=True’透明顯示字符.Font.Size=Rnd*30+10’隨機(jī)變化字號.Font.Italic=True’斜體有效
.ForeColor=RGB(Rnd*256,Rnd*256,Rnd*256)’隨機(jī)變化前景
.FontName=Screen.Fonts(Rnd*7+14)’隨機(jī)變化字體EndWith
hh=Form2.TextHehght(strr1)’取字符串高度ww=Form2.TextWidth(strr1)’取字符串寬度x=Rnd*(Form2.ScaleWidth-ww)’隨機(jī)改變坐標(biāo)y=Rnd*(Form2.ScaleHeight-hh)Form2.CurrentX=xForm2.CurrentY=y
Form2.Printstrr1’顯示字符I=I+1’計(jì)數(shù)IfI>30Then
UnloadMe’關(guān)閉封面Form1.Show’調(diào)入主窗口
Timer1.Enabled=False’關(guān)閉時(shí)間控件EndIfEndSub
8、為了能夠人為地控制程序封面的停留時(shí)間,可在窗體Form2鼠標(biāo)單擊事件中安放退出封面代碼:
PrivateSubForm-Click()UnloadMeForm1.Show
Timer1.Enabled=False’關(guān)閉時(shí)間控件EndIfEndSub
至此工作全部完成,當(dāng)運(yùn)行程序時(shí),首先彈出程序封面,封面上顯示一幅·BMP圖像,之后在此圖像上進(jìn)行隨機(jī)字符串的顯示,字符串的位置、字體、字號、前風(fēng)景等值都是隨機(jī)變化的,顯示30次后自動關(guān)閉封面返回主窗口,演示過程中用鼠標(biāo)單擊窗口也會返回主窗口,在主窗口中按下終止按鈕退出程序。具體操作時(shí)還有好多其它技巧,譬如可以置其次個(gè)窗體為主窗體,這樣運(yùn)行時(shí)可自動先彈出程序封面,可省略隱蔽窗體和調(diào)入窗體的過程,另外其次窗體也可以在程序運(yùn)行時(shí)由代碼動態(tài)生成,這樣編程時(shí)繁雜一些,但有利于程序代碼的管理;程序封面的具體制作過程,有大量動態(tài)圖像控制方法可以使用,只要靈活動用VB的作圖方法,再加上一些必要的API函數(shù)的協(xié)同,會制作出理想的程序封面。
其次種方法:隱蔽控件方法
多窗口編程存在著一定的繁雜性,需要對多個(gè)窗體的·Frm文件進(jìn)行管理,編碼時(shí)還需要頻繁地在多個(gè)窗口間進(jìn)行轉(zhuǎn)換。實(shí)際上通過一個(gè)窗體也可以編制出類似的封面效果?;驹砭褪窃诔绦蜻\(yùn)行時(shí)首先通過VISIBLE屬性隱蔽全部控件,然后在主窗體內(nèi)進(jìn)行程序封面設(shè)計(jì)和演示,延時(shí)一定時(shí)間再恢復(fù)所有控件的顯示,即達(dá)到了獨(dú)立程序封面的制作過程。由于窗體內(nèi)的控件好多,逐一隱蔽或顯示十分繁瑣,可采用容器控件簡化操作過程,即把控件全部放到Frame1等控件上,這樣只要執(zhí)行Frame1.Visible=0,即可使其上面的所有控件隱蔽起來。C由于程序只涉及一個(gè)窗體,程序設(shè)計(jì)的大部分工作只是編碼過程,所以不再分步介紹。在窗體Form1中安放一個(gè)時(shí)間控件Timer1和一個(gè)容器控件Frame1,再在Frame1上安放一個(gè)命令按鈕Command1,具體程序設(shè)計(jì)時(shí)可把所有主程序工作控件放在Frame1上;之后把下面
的代碼填入相應(yīng)的事件之中即可完成全部程序設(shè)計(jì)工作。運(yùn)行此程序后首先在全屏幕窗體內(nèi)顯示圖像,并從左上角開始逐漸放大字符串“程序封面演示〞,放大過程中顏色發(fā)生平滑變化,形成美麗的拖尾效果,連續(xù)顯示5次后自動關(guān)閉封面,返回主程序窗口,同樣馬上關(guān)閉程序封面,返回主程序窗口,單擊主窗體中的命令按鈕退出程序?!x全程變量DimI,jAsInteger’退出程序按鈕
PrivateSubCommand1-Click()EndEndSub
’單擊窗體關(guān)閉封面PrivateSubForm-Click()
Frame1.Visible=1’恢復(fù)容器控件timer1.Enabled=False’關(guān)閉時(shí)間控件
Form1.WindowState=0’恢復(fù)缺省窗口模式EndSub
’準(zhǔn)備工作
PrivateSubForm-Load()
Form1.WindowState=2’窗口最大化
Frame1.Width=Form1.Width’調(diào)整容器控件尺寸Frame1.Height=Form1.Height
Frame1.Top=0’調(diào)整容器控件位置Frame1.Left=0
Frame1.Visible=0’隱蔽容器控件timer1.Interval=10’置時(shí)間頻率
Form1.Picture=LoadPicture(\’裝入圖像Form1.ScaleMode=3’置坐標(biāo)刻度
Form1.FontName=“黑體〞’置字體名稱EndSub
’封面制作(動畫演示)PrivateSubtimer1-Timer()Strr=\程序封面演示\WithForm1’透明顯示.Font.Transparent=True
.Font.Size=I+1’放大字號.Font.Italic=True’斜體有效
.ForeColor=RGB(I*3,56,256-I*3)’平滑變化顏色EndWithstring=strr
Form1.CurrentX=I’連續(xù)改變坐標(biāo)Form1.CurrentY=I
Form1.Printstringg’顯示字符串I=I+1
IfI>72Then’放大到72號字
j=j+1’循環(huán)計(jì)數(shù)I=0
Form1.CurrentX=72Form1.CurrentY=72
Form1.ForeColor=RGB(255,56,0)’重新顯示一次字符Form1.PrintstringgEndIf
Ifj=5Then’動畫計(jì)數(shù)
Frame1.Visible=1’顯示容器控件timer1.Enabled=False’關(guān)閉時(shí)間控件Form1.WindowState=0’恢復(fù)窗口模式EndIfEndSub
以上方法及程序在WINDOWS95/98系統(tǒng)下,在VB5.0/6.0環(huán)境下調(diào)試通過。用MSGBOX函數(shù)設(shè)計(jì)版權(quán)信息
MsgBox函數(shù)可用來設(shè)計(jì)簡易的版權(quán)信息,它只能顯示文本,假使要求不高的話可采用它,優(yōu)點(diǎn)是十分便利,譬如在菜單ABOUT項(xiàng)中顯示版權(quán)信息。MsgBox函數(shù)的用法如下:MsgBoxmsg[,[type][,title]]msg—需要顯示的文字信息,如版權(quán)信息。Type—按鈕顯示選擇項(xiàng)。
如0只顯示OK按鈕(確省選擇),4顯示Yes和No按鈕title—標(biāo)題文字信息。
MSGBOX最多能顯示1024個(gè)字符,超出的將被截去;它可自動換行,假使你想強(qiáng)制換行的話需要在換行處參與換行符CHR(10)。例子:
SubForm_Click()
Msg1=〞Copyright(c)1996〞&Chr(10)&〞Ver1.0〞’分兩行顯示
MsgBoxMsg1,0,〞Copyrightdemo〞’只顯示一個(gè)OK按鈕EndSub
巧用VisualBasic的RND()函數(shù)
VisualBasic的RND()函數(shù)有一個(gè)重要的特征:當(dāng)RND()的參數(shù)(我們稱這里可以稱它為種子)為負(fù)值時(shí),同一種子(負(fù)值)產(chǎn)生同一個(gè)隨機(jī)數(shù)序列。同時(shí)VisualBasic還具有強(qiáng)大的二進(jìn)制技術(shù)功能,這樣我們可以按以下思路實(shí)現(xiàn)文件內(nèi)容加密:X=RND(-KEY)’KEY為正數(shù)
VAULE=INT(256*RND)’產(chǎn)生一個(gè)隨機(jī)數(shù)(以此為密碼)OpenFILENAME$ForBinaryAs#FILENUM’開啟文件Get#FILENUM,I,A’取文件內(nèi)容B=AXORVAULE’得到加密文件結(jié)合
C=BXORVAULE’得到解密文件(B為加密后文件內(nèi)容)
注意:這里的A非整個(gè)文件內(nèi)容,可以是極少部分、幾個(gè)字節(jié)甚至單個(gè)字節(jié),若為單字節(jié),則文件中的每個(gè)字節(jié)同不同的數(shù)異或,破譯難度可見有多么大。具體過程:SubENDECODE(FILENAME$,MA,FILE2$)'參數(shù)為:源文件,密碼,目標(biāo)文件
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsIntegerDimSINGLECHARAsString*1,filen2AsInteger'取單字節(jié)IfMA=#12:00:00AM#AndTime=#12:00:00PM#AndTime=#6:00:00PM#ThenRightNow=EveningEndIfEndSub
防止自身屢屢運(yùn)行
由于WINDOWS的多任務(wù)處理功能,有些程序可能開啟后忘掉了,下次用時(shí)還可能再開啟,這樣做會占用系統(tǒng)資源降低系統(tǒng)效率。為了防止自身被屢屢運(yùn)行,可利用VB應(yīng)用對象提供的PrevInstance屬性來檢測內(nèi)存中是否已有一個(gè)自身的副本,若有則給出提醒后終止。一般將檢測代碼放在FORM_LOAD()中,由于程序一運(yùn)行就要檢測。代碼如下:
subform_load()
ifApp.PrevInstancethen
msg$=App.Exename&〞hasalreadyrun〞
msgboxmsg$,48’給出程序已運(yùn)行的提醒和一驚嘆號以示警告endendifendsub
格式化輸入
在數(shù)據(jù)輸入過程中,有些數(shù)據(jù)要求一定的格式,譬如限制輸入的只能為數(shù)字或英文字符,這可用VB的格式輸入文本框來實(shí)現(xiàn)。它與文本框(TEXTBOX)功能基本相像,但多了一個(gè)MASK屬性,MASK屬性常用的設(shè)定如下:?!薅▋H能輸入數(shù)字0~9;A—限定輸入為英文字符及數(shù)字;?—限定僅能輸入英文字符;.—限定小數(shù)點(diǎn)位置;:—限定時(shí)間分隔號;/—限定日期分隔號
不需編寫代碼,只要在設(shè)計(jì)時(shí)將格式化文本框?qū)ο螅∕ASKEDEDIT)的MASK屬性設(shè)計(jì)好所需格式即可。譬如##-##-##可輸入12-11-96。
使用IIF和SWITCH以精減代碼
在好多地方你都可以使用一個(gè)更緊湊的Iif函數(shù)來代替If?Else?Endif的結(jié)構(gòu):例:返回兩個(gè)值中較大的一個(gè)maxValue=Iif(first>=second,first,second)
Switch則是一個(gè)很少
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技引領(lǐng)構(gòu)建綠色校園文化
- 二零二五年度女方婚前財(cái)產(chǎn)保護(hù)協(xié)議婚姻風(fēng)險(xiǎn)防控與婚姻安全協(xié)議書
- 2025年度泳池救生員安全責(zé)任管理與應(yīng)急處理協(xié)議
- 二零二五年度合作社土地入股與農(nóng)業(yè)廢棄物綜合利用合同
- 二零二五年度個(gè)體工商戶自愿退股及資產(chǎn)轉(zhuǎn)讓合同
- 二零二五年度工傷賠償協(xié)議書賠償條件分析
- 二零二五年度家校聯(lián)動勞動實(shí)踐家長與子女勞動協(xié)議
- 個(gè)人手房買賣合同(含房屋租賃權(quán)及使用權(quán)轉(zhuǎn)移)
- 訂貨合同范本模板
- 桉樹砍伐與2025年度生態(tài)保護(hù)補(bǔ)償協(xié)議
- 2025年合肥職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整版
- 2025年湖南城建職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫新版
- 企業(yè)級軟件開發(fā)作業(yè)指導(dǎo)書
- 《中國古代文學(xué)史及作品選II》教學(xué)大綱
- 代工生產(chǎn)合同范本
- 瑜伽課程合同轉(zhuǎn)讓協(xié)議書范本
- 個(gè)人經(jīng)營性貸款合同模板
- 人教版英語2025七年級下冊 Unit1Animal Friends教師版 語法講解+練習(xí)
- DeepSeek新手入門教程
- 課件:《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》學(xué)習(xí)宣講
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
評論
0/150
提交評論