vb實例53:獲得撥號網(wǎng)絡(luò)項目_第1頁
vb實例53:獲得撥號網(wǎng)絡(luò)項目_第2頁
vb實例53:獲得撥號網(wǎng)絡(luò)項目_第3頁
vb實例53:獲得撥號網(wǎng)絡(luò)項目_第4頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實例53:獲得撥號網(wǎng)絡(luò)項目實例說明在本實例中,如圖在本實例中,如圖53-1所示。我們將制作一個能夠取得本地計算機上的撥號網(wǎng)絡(luò)的項目的應(yīng)用程序。程序運行結(jié)果圖53T運行結(jié)果技術(shù)要點讀取注冊表內(nèi)容添加到列表框?qū)崿F(xiàn)過程B新建項目打開VisualStudio.NET,選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“Windows應(yīng)用程序”,在名稱域中輸入“GetDialList”,然后選擇保存路徑?單擊“確認”。添加控件和設(shè)置屬性向窗體上添加一個ListBox控件。將窗體的Text屬性改為“獲得撥號網(wǎng)絡(luò)項目”,其余屬性都保持默認。添加代碼PrivateDeclareFunctionRegOpenKeyLib"advapi32.dll"Alias*RegOpenKeyA*(ByVaihKeyAsInteger,ByVaiIpSubKeyAsString,ByRefphkResultAsInteger)AsIntegerPrivateDeclareFunctionRegCloseKeyLib"advapi32.dll”(ByVaihKeyAsInteger)AsIntegerPrivateDec1areFunctionRegEnumKeyLib*advapi32.dll"Alias*RegEnumKeyA*(ByVaihKeyAsInteger,ByVaidwlndexAsInteger,ByVaiIpNameAsString,ByVaicbNameAsInteger)AsIntegerConstHKEY/URRENT_USERAsInteger=&H80000001ConstERROR_NO_MORE_ITEMSAsShort=259ConstERROR_SUCCESSAsShort=0PrivateSubForml_Load(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesMyBase.LoadDimhKeyAsIntegerDimiAsIntegerDimastrAsVB6.FixedLengthString=NewVB6.FixedLengthString(256)IfRegOpenKey(HKEYCURRENTUSER,"RemoteAccess\Profile”,hKey)=ERRORSUCCESSThenWhileRegEnumKey(hKey,i,astr.Value,256)=ERROR_SUCCESSListl.Items.Add(astr.Value)i=i+1EndWhileRegCloseKey(hKey)EndIfEndSub運行程序單擊菜單“調(diào)試I啟動”或單擊>圖標運行程序。小結(jié)本實例通過讀取注冊表中有關(guān)撥號網(wǎng)絡(luò)的項目,然后將這些項目添加到歷表框中,這就是本程序的思路。實例54:倒計時程序?qū)嵗f明本實例將制作一個倒計時程序。程序運行時,始終位于在任何窗口的最前面,雙擊窗體結(jié)束應(yīng)用程序。程序運行結(jié)果如圖54T所示?可以在窗體上単擊鼠標右鍵,在彈出的菜單中選擇“設(shè)置倒計時”,設(shè)置界面如圖54-2所示。設(shè)定時間:

ロ小時身分團秒

號定I取消圖54T運行結(jié)果 圖54-2設(shè)置倒計時界面技術(shù)要點保持窗體最前倒計時TimeSerial()函數(shù)SetWindowPos()AP!函數(shù)實現(xiàn)過程新建項目打開VisualStudio.NET?選擇“新建項冃”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“Windows應(yīng)用程序”,在名稱域中輸入“ReverseCounl”,然后選擇保存路徑。單擊“確認”。添加控件、菜單和窗體為當前窗體添加兩個Label控件和兩個Timer控件。其中一個Timer控件控制ー個Label控件在上方一直循環(huán)移動;另ー個Timer控件控制時間的顯示。添加一個ContextMenu控件并新建菜單”設(shè)置倒計時”和“退出”。利用菜單“項目I添加Windows窗體”,為當前項目添加一個窗體Form2,給Form2添加四個Label控件,用于說明之用;兩個Button按鈕和三個TextBox控件。最后通過菜單“項印添加模塊”為當前項冃添加一個模塊。設(shè)置屬性切換到“屬性欄”,對窗體及窗體上的控件進行設(shè)置屬性。詳細情況如表54-1和表54-2所示。表54T窗體Forml及控件的屬性值窗體/控件 ]屬性 1值

FormlFormBorderStyleFixedSingleContextMenuContextMenulLabel1Text倒計時TimerlInterval100Timer2Interval1000表54-2窗體Form2及控件的屬性值窗體/控件屬性值Form2BorderStyle0-NoneStartUpPositonCenterScreenTextlText(空)ButtonlText更改圖片其余控件跟界面一致即可?添加代碼ModuleModulel’這是在模塊中添加的代碼PublicPublicPublicPublicPublicPublic’此API函數(shù)用來使某個窗口位于所有窗口之上PublicDeclareFunctionSetWindowPosLib”user32"(ByVaihwndAsInteger,ByVaihWndlnsertAfterAsInteger,ByVaiXAsInteger,ByVaiYAsInteger,ByVaiexAsInteger,ByVaicyAsInteger,ByVaiwFlagsAsInteger)AsIntegerEndModule’下面這些代碼是在窗體Forml屮添加的’雙及窗體,結(jié)束應(yīng)用程序PrivateSubForml_DoubleClick(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesMyBase.DoubleClickMe.Close()EndSub’啟動程序時,使程序位于任何窗體的上方PrivateSubForml_Load(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesMyBase.LoadMe.TopMost=TrueEndSub’開始倒計時,并顯示出來PrivateSubTimerl_Tick(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesTimerl.Tickrevtimerevtime)DateAdd(Microsoft.VisualBasic.Datelnterval.Second,-1,revtimerevtime)Label2.Text=Format(revtime,Ahh*)&:&Format(revtime,"mm")&&Format(revtime,"ss")EndSubPrivateSubMenuIteml_Click(ByVaisenderAsObject,ByVaieAsSystem.EventArgs)HandlesMenulteml.ClickForm2.Deflnstance.ShowDialogOEndSubPrivateSubMenultem2Click(ByValsenderAsObject,ByVaieAsSystem.EventArgs)HandlesMenultem2.ClickMe.Close()EndSub’下面這些代碼是在窗體Form2中添加的PrivateSubButtonlClick(ByValeventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesButtonl.Clickhours=Vai(Textl.Text)minutes=Vai(Text2.Text)seconds=Vai(Text3.Text)’將輸入轉(zhuǎn)化為時間格式revtime:FimeSerial(hours,minutes,seconds)Forml.Deflnstance.Label2.Text=Format(revtime,"hh")& &Format(revtime,"mm")&":"&Format(revtime,"ss")Forml.Deflnstance.Timerl.Enabled=TrueForm2.Deflnstance.HideOEndSubPrivateSubButton2Click(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesButton2.ClickMe.Close0EndSub?運行程序單擊菜單“調(diào)試I后動”或單擊>圖標運行程序。小結(jié)本實例介紹了一個倒計時程序,它的思路比較簡單就是獲得用戶輸入的時間值,通過定時器每秒鐘更新顯示?次。它的應(yīng)用比較廣泛,讀者可以更改其界面,使其變得更實用、更漂亮。

Ld串行化的概念進行讀寫操作實現(xiàn)過程>rl?lisingobjectgraphtodisk..Conplata.Ld串行化的概念進行讀寫操作實現(xiàn)過程>rl?lisingobjectgraphtodisk..Conplata.a新建項目打開VisualStudio.NET,選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“類庫”,在名稱域中輸入“SerializeTest”,然后選擇保存路徑。單擊“確認”。ImportsImportsImportsImportsImports?添加代碼ImportsImportsImportsImportsImportsSystemSystem.10System.CollectionsSystem.Runtime.SerializationSystem.Runtime.Serialization.Formatters.BinaryNamespaceClassLibrarylPublicClassSerializeTestPublicSharedSubMainOConsole.WriteLine(*Createobjectgraph")Dim1AsNewArrayListDimxAsIntegerForx=0To9172中級點 Console.WriteLine(x)1.Add(x)NextxConsole.Write(*Serializingobjectgraphtodisk..*)DimsAsStream=File.Open(*foo.bin*,FileMode.Create,FileAccess.ReadWrite)DimbAsBinaryFormatter=NewBinaryFormatterb.Serialize(s,1)s.Close0Console.WriteLine(*Complete.つConsole.Write(*Deserializingobjectgraphfromdisk..")DimrAsStream=File.Open("foo.bin",Fi1eMode.Open,FileAccess.Read)DimcAsNewBinaryFormatterDimpAsArrayList=CType(c.Deserialize(r),ArrayList)Console.WriteLine("Complete.")DimiAsObjectForEachiInpConsole.WriteLine(i)Nextir.Close()Console.WriteLine(Microsoft.VisualBasic.ControlChars.CrLf&"PressReturntoexit.")Console.Read()EndSubEndClassEndNamespace?運行程序單擊菜單“調(diào)試I啟動”或單擊 圖標運行程序。小結(jié)串行化是把圖式對象轉(zhuǎn)換成為線性字節(jié)串行的過程。字節(jié)序列可以發(fā)送到別處,例如遠程計算機,然后執(zhí)行序列解碼,這樣就在遠程主機內(nèi)存屮生成了原來圖式對象的克隆。串行化過程在VB.NET中是I-分容易使用的,而且是開放的,每個VB6的程序員都曾經(jīng)自覺或不自覺地使用過串行化。當任何ActiveXdll或者ActiveXexe被創(chuàng)建后,都有五個屬性可以設(shè)置,最后ー個Persistable屬性就是VB6中的串行化。VB6中串行化的過程不需要用戶認知,大部分開發(fā)人員也從來不管串行化做了什么和如何運作。在VB.NET中,有著公共對象庫,每個支持.NET體系的語言都可以通過System.Runtime.Serialization的名字空間來理解和使用VB.NET的串行化特征。串行化可以替代任何流,象MemoryStream,NetStream等,而不僅僅是FileStream。實例56:控制圖形移動實例說明在本實例中,我們將使用VScrollBar控件和HScrollBar控件來控制圖片的移動,我們還可以設(shè)置移動的間距大小。程序運行結(jié)果如圖56-1所示。W使用ScrollBar餐制圖理的移動圖56T運行結(jié)果技術(shù)要點控制圖片移動直接拖動圖片更改ScrollBar控件的移動間距大小實現(xiàn)過程新建項目打開VisualStudio.NET.選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“Windows應(yīng)用程序”,在名稱域中輸入“ScrollBarCtJ',然后選擇保存路徑。單擊“確認”。添加控件向當前窗體上添加一個GroupBox控件,在GroupBox控件上放置六個Label控件和兩個ComboBox控件;然后再添加,個Picture控件,-個VScrolIBar控件和,個HScrolIBar控件和六個Label控件。按照圖56-1的運行結(jié)果排列好位置。B設(shè)置屬性對窗體上的控件進行屬性設(shè)置。詳細情況如表56T所示。表56T窗體各控件的屬性值窗體/控件屬性值PictureBoxPictureHuman,jpgComboBox1Items1,2,3,4,5ComboBox1Itmes5,10,20,50其余控件Text跟界面一致B添加代碼由于空間有限,我們僅列出主要代碼,其余代碼請看光盤?!綕L動條移動時,改變圖片的位置PrivateSubHScrollBarlScroll(ByVaisenderAsSystem.Object,ByVaieAsSystem.Windows.Forms.ScrollEventArgs)HandlesHScrollBarl.Scrolllabel11.Text=HScrollBarl.Value.ToStringOhAbsPos=CSng(HScrollBarl.Value-HScrollBarl.Minimum)pictureBoxl.Left=HScrollBarl.Right-CInt(hScrollMultiplier*hAbsPos)-pictureBoxl.WidthEndSub’更改大間距移動的值PrivateSubcomboBox1SelectedlndexChanged(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandlescomboBox1.SelectedlndexChangedVScrollBarl.LargeChange=Convert.ToIntl6(comboBoxl.Selectedltem.ToStringO)HScrollBarl.LargeChange=Convert.Tolnt16(comboBox1.Selectedltem.ToStringO)labelll.Text=HScrollBarl.Value.ToStringOlabel12.Text=VScrollBarl.Value.ToString()EndSub’更改小間距移動的值PrivateSubcomboBox2SelectedlndexChanged(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandlescomboBox2.SelectedlndexChangedVScrollBarl.SmallChange=Convert.Tolnt16(comboBox2.Selectedltem.ToStringO)HScrollBarl.SmallChange=Convert.Tolnt16(comboBox2.Selectedltem.ToStringO)labelll.Text=HScrollBarl.Value.ToStringOlabel12.Text=VScrollBarl.Value.ToStringOEndSub’直接拖動圖片PrivateSubpictureBoxlMouseDown(ByVaisenderAsSystem.Object,ByVaieAsSystem.Windows.Forms.MouseEventArgs)HandlespictureBoxl.MouseDowndragging=True'(e.x,e.y)表示光標相對于圖片位置的相對坐標。我們需要將這個值保存下來oldX=e.XoldY=e.YEndSub?運行程序單擊菜單“調(diào)試I啟動"或單擊’圖標運行程序。小結(jié)本實例通過使用ScrollBar控件來控制圖片的顯示,這在我們要顯示大圖片時是很有必要的。通過對本實例的學(xué)習(xí),讀者能夠掌握ScroollBar控件的基本使用方法。

實例實例57:多彩文本實例說明在本實例中,我們制作一個能夠顯示多種形式文本的應(yīng)用程序。程序運行后,即在窗體上的不同區(qū)域輸出不同的文字。程序運行結(jié)果如圖57T所示。IwentdowntotheStJamesInfirmary.Sawmybabythere.Stretchedoutonalongwhitetable.Sosweet,socolittofair.Lethergo,lethergo.Godblessher.Wherevershemaybe.Shecanlookthiswideworldover,Butshellneverfindasweetmanhkeme.WhenIdiewantyoutodressmemstraightlaceshoes,1wannaaboxbackcoatandaStetsonhat.Putatwentydollargoldpieceonmywatchcham.IwentdowntotheStJamesInfirmary.Sawmybabythere.Stretchedoutonalongwhitetable.Sosweet,socolittofair.Lethergo,lethergo.Godblessher.Wherevershemaybe.Shecanlookthiswideworldover,Butshellneverfindasweetmanhkeme.WhenIdiewantyoutodressmemstraightlaceshoes,1wannaaboxbackcoatandaStetsonhat.Putatwentydollargoldpieceonmywatchcham.SotheboysllknowthatIdiedstandingyourdreamsttieyshmesohard:ybecause而emptyandallyourdreamsare"hangingouttodryarestarsandtheyshmesocoldonceilikecryingtwiceibkelaughtercometellmeudiati'mafter技術(shù)耍點設(shè)定不同的Brush和Font輸出字體實現(xiàn)過程新建項目打開VisualStudio.NET,選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中,選擇“Windows應(yīng)用程序”,在名稱域中輸入“GdipText”,然后選擇保存路徑。單擊“確認”。a添加代碼PublicSubNew()MyBase.New()TextSample=MeInitializeComponent()serifFontFami1y=NewFontFamily(GenericFontFami1ies.Serif)Me.SetStyle(Controlstyles.Opaque,True)Me.SetStyle(Controlstyles.ResizeRedraw,True)DimbackgroundImageAsImage’設(shè)定背景圖片backgroundImage=NewBitmap(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("colorbars,jpg"))‘新建一個畫刷,我們將使用它在背景圖片上畫圖backgroundBrush=NewTextureBrush(backgroundimage)’設(shè)定文本圖片DimtextImageAsImage=NewBitmap(System.Reflection.Assembly.GetExecutingAssembly0.GetManifestResourceStream("marble,jpg"))textTextureBrush=NewTextureBrush(textimage)’設(shè)定耍使用字體格式Me.Font=NewFont(serifFontFamily,20)titleFont=NewFont(serifFontFamily,60)textFont=NewFont(serifFontFamily,11)’建立一個陰影畫刷titleShadowBrush=NewSolidBrush(Color.FromArgb(70,Color.Black)),用設(shè)定的字體和畫刷輸出Japanese文本TryjapaneseFont=NewFont("MSMincho",36)linearGradBrush=NewLinearGradientBrush(NewPoint(0,0),NewPoint(0,45),Color.Blue,Color.Red)CatchexAsExceptionMessageBox.Show("TheJapanesefontMSMinchoneedsbepresenttoruntheJapanesepartofthissample"&ControlChars.CrLf&""&ControlChars.CrLf&""+ex.Message)doJapaneseSamp1e=FalseEndTryEndSubProtectedOverridesSubOnPaint(ByVaieAsPaintEventArgs)DimgAsGraphics=e.Graphicsg.SmoothingMode=SmoothingMode.AntiAlias‘用texture畫刷填充背景,并應(yīng)用到?個白畫布上g.Fi11Rectangle(backgroundBrush,ClientRectangle)g.Fi11Rectang1e(NewSo1idBrush(CoIor.FromArgb(180,Color.White)),ClientRectang1e)g.DrawString("歡迎大家來到VB.NET的世界!",Me.Font,NewSolidBrush(Color.Black),10,10)DimtitleTextAsString="圖形示例"g.DrawString(titleText,titleFont,ti11eShadowBrush,15,25)g.DrawString(titleText,titleFont,textTextureBrush,10,20)DimtextToDrawAsString="銀河文化公司"DimwindowCenterAsDoub1e=Me.DisplayRectangle.Width/2DimstringSizeAsSizeF=g.MeasureString(textToDraw,textFont)DimstartPosAsDouble=windowCenter-(stringSize.Width/2)g.DrawString(textToDraw,textFont,NewSolidBrush(Color.Red),CType(startPos,Single),10)DimrectanglelAsRectangleF=NewRectangleF(20,150,250,300)g.FillRectangle(NewSolidBrush(Color.Gainsboro),rectanglel)g.DrawString(flowedTextl,textFont,NewSolidBrush(Color.Blue),rectanglel)‘輸出居中文本Dimrectangle2AsRectangleF=NewRectangleF(450,150,250,300)g.FillRectangle(NewSolidBrush(Color.Gainsboro),rectangle2)DimformatAsStringFormat=NewStringFormat()format.Alignment=StringAlignment.Centerg.DrawStrinj?(flowedText2,textFont,NewSolidBrush(Color.Blue),rectangle2,Format)’統(tǒng)計輸出的字符數(shù)和行數(shù)DimcharactersAsInteger=0DimlinesAsInteger=0g.MeasureString(flowedText2,textFont,rectangle2.Size,format,characters,lines)DimwhatRenderedTextAsString="共輸出了"+CType(characters,String)+"字符和"+CType(lines,String)+"行”g.DrawString(whatRenderedText,textFont,NewSolidBrush(Color.Black),400,440)‘旋轉(zhuǎn)剛才輸出的Japanese文本If(doJapaneseSample)Theng.RotateTransform(~30)g.TranslateTransform(-180,300)g.DrawString(japaneseText,japaneseFont,1inearGradBrush,200,140)g.ResetTransform()EndIfEndSub?運行程序單擊菜單“調(diào)試I啟動”或單擊?圖標運行程序。小結(jié)本實例使用不同的畫刷(Brush)和字體(Font),在不同的區(qū)域輸出不同的文字,并可以旋轉(zhuǎn)文字,而并不需要使用API函數(shù)0實例58:開發(fā)用戶自定義控件實例說明在本實例中將自行制作一個用戶自定義控件并在另外的ーー個應(yīng)用程序中加以引用。程序運行后,可以更改其中的內(nèi)容,然后電擊save即可。程序運行結(jié)果如圖58-1所示。ControlExampleID |S36-45-1245Title:車/d>a?e JotTs|R?ddin<Address: 11DockStreet,"回Bay,|So?teYhere,1ICencel圖58T運行結(jié)果技術(shù)要點定制用戶控件界面為用戶控件添加屬性和過程?編譯用戶控件引用用戶控件實現(xiàn)過程B新建項目打開VisualStudio.NET,選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“Windows控件庫”,在名稱域中輸入“CustomControl”,然后選擇保存路徑。單擊“確認”。添加控件向當前用戶控件UserControl1上添加五個Label控件和五個TexbBox控件。B設(shè)置屬性對用戶控件UserControll上的控件設(shè)置屬性,如表58-1所示。表58-1各控件的屬性值

窗體/控件屬性值UserControlBackColor&H00C00000Text5TextScrolIBars2-VerticalMultiLineTrueLabe11TextIDTextlText其余Label>TextBox控件Text跟界面?致■添加組件類通過菜單“項目丨添加新項”,在弾出的對話框中選擇“組件類”,在名稱欄中輸入Customer,單擊“確???>疋??添加代碼在組件類的代碼窗ロド輸入ド列代碼。ImportsSystem?添加代碼在組件類的代碼窗ロド輸入ド列代碼。ImportsSystemImportsSystem.Windows.FormsImportsSystem.DrawingNamespaceMicrosoft.Samples.WinForms.VB.CustomerControlPublicClassCustomerControlInheritsSystem.Windows.Forms.UserControlPrivatecustomer1AsCustomerPublicSubNew()MyBase.New()'RequiredbytheWindowsFormsDesignerInitializeComponent()'TODO:AddanyconstructorcodeafterInitializeComponentcallEndSubPublicPropertyCustomer0AsCustomerGetReturncustomerlEndGetSet(ByVaiValueAsCustomer)customerl=ValueLoadCustomer()EndSetEndPropertyPublicSubAcceptChangesOcustomerl.Title=textBoxTitle.Textcustomerl.FirstNamecustomerl.LastNamecustomerl.Address=textBoxFcustomerl.FirstNamecustomerl.LastNamecustomerl.Address=textBoxFirstName.TexttextBoxLastName.TexttextBoxAddress.TextEndSubPublicSubRejectChanges()LoadCustomer()EndSubPrivateSubLoadCustomer()textBoxID.Text=customerl.IDtextBoxTitle.Text=customerl.TitletextBoxFirstName.Text=customerl.FirstNametextBoxLastName.Text=customerl.LastNametextBoxAddress.Text=customerl.AddressEndSubPublicOverloadsOverridesSubDisposeOMyBase.DisposeOEndSubEndClassEndNamespace測試用戶控件右鍵單擊“解決方案”,選擇“添加|新建項目”,為解決方案添加一個測試用戶控件的項目。并在窗體上添加一?個CustomerContro!控件和兩個Button控件。添加測試代碼’這些必不可少ImportsSystemImportsSystem.ComponentModelImportsSystem.DrawingImportsSystem.Windows.FormsImportsMicrosoft.Samples.WinForms.VB.CustomerControlImportsMicrosoft.VisualBasic.ControlCharsNamespaceMicrosoft.Samples.WinForms.VB.HostAppPublicClassHostAppInheritsSystem.Windows.Forms.FormPublicSubNew()MyBase.New()HostApp=Me,ThiscallisrequiredbytheWindowsFormsDesigner.InitializeComponent()TODO:AddanyinitializationaftertheInitializeComponent()callCustomerControl1.Customer=Customer.ReadCustomer0'Settheminimumformsizetotheclientsize+theheightofthetitlebarMe.MinimumSize=NewSize(400,(373+Systeminformation.TextHeight))EndSub

*Formoverridesdisposetocleanupthecomponentlist.PublicOverloadsOverridesSubDisposeOMyBase.DisposeOcomponents.DisposeOEndSubPrivateSubbuttonCancel_Click(ByValsenderAsObject,ByVaieAsSystem.EventArgs)HandlesbuttonCancel.ClickCustomerControl1.Rejectchanges〇EndSubPrivateSubbuttonSave_Click(ByVaisenderAsObject,ByVaieAsSystem.EventArgs)HandlesbuttonSave.ClickCustomerControl1.AcceptChanges〇MessageBox.Show(*CustomerChangesSaved:*&CrLf&CustomerControll.Customer.ToString)EndSub<STAThread()>SharedSubMainOApplication.Run(NewHostAppO)EndSubEndClass1HostAppEndNamespace運行程序單擊菜單“調(diào)試啟動”單擊菜單“調(diào)試啟動”或單擊圖標運行程序。小結(jié)我們在本實例中自制了一個AcitveX控件,此控件具有定時提示的作用。讀者可以自行開發(fā)控件,最后將該控件發(fā)布即可.實例59:連接數(shù)據(jù)庫(う實例說明ド面,我們將利用VB.NET自行創(chuàng)建一個連接數(shù)據(jù)庫的應(yīng)用程序,其運行結(jié)果如圖59T所示.■http:>z/localhost/(|ukkstart/howto'sampleI)一II)一Iー辭本地!ntranet圖59T運行結(jié)果技術(shù)要點?介紹ADO.NETSqlConnection和SqlCommand實現(xiàn)過程■新建項目打開VisualStudio.NET7.O,選擇“新建項目”,在項目類型窗口中,選擇“VisualBasic項目”,在模板窗口中,選擇“ASP.NETWeb應(yīng)用程序”,在名稱域中輸入“adooverview3”,然后選擇保存路徑。單擊確認。文用E)M(D査利)收エJUDm(W“ー-90丄(t個人欄 國收砲JWr」ユ_JW地址<0)|CjhtS://loc曲osUqudstWhcMto/wndM/心立(ハdoove^e?添加代碼ImportsSystemImportsSystem.DataImportsSystem.Data.SqlClientnamespaceHowTo.Samples.?添加代碼ImportsSystemImportsSystem.DataImportsSystem.Data.SqlClientnamespaceHowTo.Samples.ADONETpublicclassadooverview3publicsharedsubMainODimmyadooverview3asadooverview3myadooverview3=newadooverview3()myadooverview3.RunOendsubCustomerIDCcanpajiyNteALFKI AlfredsFutterkisteAMATR AnaTrujilloCnparedadosyhelado? 」AMTOX AntonioMorenoTagueriaAROUT AroundtheHomBERGS Berglundasnabbk^pBLAUS BlauerSeeDellkatessenBLONP BlondesddalpereetfITsBOLID BolidoCorndaspreparadasBOMAP Bonapp(BOTTM Bott<m-DollarMarketsBSBEV B'sBeveragesCACTU CactusComdasparaUevarCOTC CentrocoaercialMoctezunaCHOPS Chop-sueyChinese .COMMT Craw>rninMineirn 」publicsubRun()DimmyReaderasSqlDataReaderDimmySqlConnectionasSqlConnectionDimmySqlCommandasSqlCommand’設(shè)置數(shù)據(jù)庫的連接mySq1Connection=newSqlConnection(*server=(1ocal)\NetSDK;uid=QSUser;pwd=QSPassword;database:northwind")mySqlCommand=newSqlCommand("select*fromcustomers",mySqlConnection)try’輸出字段名稱mySq1Connection.Open()myReader=mySqlCommand.ExecuteReader0Console.Write("CustomerID")Console.WriteLine("CompanyName")’輸出紀錄dowhile(myReader.ReadO)Console.Write(myReader("CustomerID").ToStringO+" ")Console.WriteLine(myReader("CompanyName").ToStringO)loopcatcheasExceptionConsole.WriteLine(e.ToStringO)finallyifNot(myReaderisNothing)myReader.Close()endifif(mySqlConnection.State=ConnectionState.Open)mySq1Connection.Close()endifendtryendsubendclassendnamespace?運行程序打開“開始|程序[MicrosoftVisualStudio.NET7.0VisualStudio.NETToolsIVisualStudio.NETCommandPrompt運行之后輸入vbcadooverview3.vbo即可生成可執(zhí)行文件。小結(jié)ADO.NET是ADO數(shù)據(jù)控制模型的升級版木,它是為了適應(yīng)Web不斷增長的規(guī)模而設(shè)計的。ADO.NET仍然使用以前的ADO對象,像Connetion和Command對象,同時還增加了一些新的ADO.NET對象,如DataSet、DataReader和DataAdapter等。ADO.NET和以前ADO數(shù)據(jù)結(jié)構(gòu)最大的不同就在于——DataSet對象,他跟以前任何的數(shù)據(jù)存儲都不同。正因為如此,DataSet函數(shù)作為ー個獨立的實體而存在。在DataSet內(nèi)部,包括像表、關(guān)系、限制、視圖等等跟?個數(shù)據(jù)庫樣實例60:打印和打印預(yù)覽功能實例說明在本實例中,我們將制作一個能實現(xiàn)打印和打印預(yù)覽功能的應(yīng)用程序。程序運行結(jié)果如圖實例60:打印和打印預(yù)覽功能實例說明在本實例中,我們將制作一個能實現(xiàn)打印和打印預(yù)覽功能的應(yīng)用程序。程序運行結(jié)果如圖60-1所示。圖60T運行結(jié)果技術(shù)要點實現(xiàn)過程?新建項冃打開VisualStudio.NET?選擇"新建項目”,在項目類型窗口中選擇"VisualBasic項目”,在模板窗口屮選擇“Windows應(yīng)用程序",在名稱域中輸入“PrintExa叩le",然后選擇保存路徑。單擊“確認"。?添加控件和設(shè)置屬性向當前窗體上添加三個Button控件,將他們的Text屬性改為和界面?致。?添加組件類和要打印的文件通過菜單“項目1添加組件"為當前項目添加一個組件類,并添加一個需要打印的文件。B添加代碼’組件類屮的代碼ImportsSystemImportsSystem.ComponentModelImportsSystem.Windows.FormsImportsSystem.Drawing昌q?oma打印預(yù)覽功能的實現(xiàn)打印功能的實現(xiàn)!□1x!.打印預(yù)をImportsSystem.Drawing.PrintingImportsSystem.10NamespaceMicrosoft.Samples.WinForms.VB.PrintingExample5PublicClassTextFilePrintDocumentInheritsPrintDocumentPrivateprintFontAsFontPrivatestreamToPrintAsStreamReaderPublicSubNew(streamToPrintAsStreamReader)MyBase.NewMe.streamToPrint=streamToPrintEndSub1OverrideOnBeginPrinttosetupthefontwearegoingtouseOverridesProtectedSubOnBeginPrint(evAsPrintEventArgs)MyBase.OnBeginPrint(ev)printFont=newFont("Arial.,10)EndSub,OverridetheOnPrintPagetoprovidetheprintinglogicforthedocumentOverridesProtectedSubOnPrintPage(evAsPrintPageEventArgs)MyBase.OnPrintPage(ev)DimIppAsSingle=0DimyPosAsSingle=0DimcountAsInteger=0DimleftMarginAsSingle=ev.MarginBounds.LeftDimtopMarginAsSingle=ev.MarginBounds.TopDimlineasString,Workoutthenumberoflinesperpage'UsetheMarginBoundsontheeventtodothisIpp=ev.MarginBounds.Height/printFont.GetHeight(ev.Graphics)'Checkcountfirstsothatwedon'treadlinethatwewon'tprintline=streamToPrint.ReadLine0While((count<Ipp)AndNot(1ineIsNothing))yPos=topMargin+(count*printFont.GetHeight(ev.Graphics))ev.Graphics.DrawString(1ine,printFont,Brushes.Black,leftMargin,yPos,newStringFormat())count=count+1if(countくIpp)then1ine=streamToPrint.ReadLine()endifEndWhileIf(line<>Nothing)Thenev.HasMorePages=TrueElseev.HasMorePages=FalseEndIfEndSubEndClassEndNamespace'主窗體中的代碼ImportsSystemImportsSystem.ComponentModelImportsSystem.Windows.FormsImportsSystem.DrawingImportsSystem.Drawing.PrintingImportsSystem.10NamespaceMicrosoft.Samples.WinForms.VB.PrintingExamp1e5PublicClassPrintFormInheritsSystem.Windows.Forms.FormPrivatestoredPageSettingsAsPageSettingsPublicSubNew()MyBase.NewPrintForm=MeInitializeComponent()AddHandlerprintButton.Click,AddressOfprintButtonClickAddHandlerpageSetupButton.Click,AddressOfpageSetupButtonClickAddHandlerprintPreviewButton.Click,AddressOfprintPreviewButtonClickEndSub’頁面設(shè)置PrivateSubpageSetupButtonClick(senderAsobject,eAsSystem.EventArgs)TryDimpsDlgAsNewPageSetupDialogIf(storedPageSettingsIsNothing)ThenstoredPageSettings=newPageSettings()EndIfpsDlg.PageSettings=storedPageSettingspsDlg.ShowDialogCatchexAsExceptionMessageBox.Show("Anerroroccurred-"+ex.Message)EndTryEndSub’開始打印PrivateSubprintButton_Click(senderAsobject,eAsSystem.EventArgs)TryDimstreamToPrintAsStreamReader=newStreamReader("PrintMe.Txt")Try’使用缺省打印機DimpdAsTextFilePrintDocument=newTextFilePrintDocument(streamToPrint)IfNot(storedPageSettingsIsNothing)Thenpd.DefaultPageSettings=storedPageSettingsEndIfDimdigAsNewPrintDialogOdig.Document=pdDimresultAsDialogResult=dig.ShowDialogOIf(result=System.Windows.Forms.DialogResult.OK)Thenpd.Print()EndIfFinallystreamToPrint.Close0EndTryCatchexAsExceptionMessageBox.Show("Anerroroccurredprintingthefile-"+ex.Message)EndTryEndSub‘打印預(yù)覽PrivateSubprintPreviewButtonClick(senderAsobject,eAsSystem.EventArgs)TryDimstreamToPrintAsStreamReader=newStreamReader("PrintMe.Txt")TryDimpdAsTextFilePrintDocument=newTextFilePrintDocument(streamToPrint)IfNot(storedPageSettingsIsNothing)Thenpd.DefaultPageSettings=storedPageSettingsEndIfDimdigAsNewPrintPreviewDialog()dig.Document=pddig.ShowDialogOFinallystreamToPrint.Close()EndTryCatchexAsExceptionMessageBox.Show("Anerroroccurred-"+ex.Message)EndTryEndSubPublicOverloadsOverridesSubDisposeOMyBase.DisposeOcomponents.DisposeOEndSub<STAThread()>SharedSubMainOSystem.Windows.Forms.Application.Run(NewPrintFormO)EndSubEndClassEndNamespace?運行程序單擊菜單“調(diào)試I啟動”或單擊>圖標運行程序。小結(jié)在打印和打印預(yù)覽時,我們可以使用PrintPreviewDialog,PrintPreviewControl控件和PrintDocument控件來實現(xiàn)。實例61:MP3播放器實例說明在本實例中,我們將制作一個MP3播放器。程序運行時,可以選擇MP3文件,選擇左右聲道聲音,總共播放所需的時間等。程序運行結(jié)果如圖61T所示。圖61T運行結(jié)果技術(shù)要點注冊Mp3Play控件獲得MP3文件的播放總時間? 設(shè)置左右聲道的聲音獲得MP3文件的總幀數(shù)實現(xiàn)過程B新建項目打開VisualStudio.NET.選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“Windows應(yīng)用程序”,在名稱域中輸入“Mp3Play”,然后選擇保存路徑。單擊“確認”。B添加控件向當前窗體添加七個Label控件,其中四個作為說明之用,其余三個分別用于顯示MP3文件的播放時間、總幀數(shù)和文件名稱。鼠標右擊工具箱,選擇“自定義工具箱”,在彈出的對話框中選擇Com組件,選中“MicrosoftCommonDialogControl6.0”、“MicrosoftCommonControls6.0”、單擊“瀏覽”,選中文件Mp3play.ocx,這時會在“”選項卡中出現(xiàn)“Dialog-MediaMp3PlayActiveXControlModule"ー項。添加一個CommonDialog控件、三個Slider控件和一個Mp3PlayCtrl控件.ゝ?設(shè)置屬性切換到“屬性欄”,對窗體上的控件設(shè)置屬性如表61-1所示。表61T屬性表控件屬性值SldLeftTickStyle2-sldBothMax100Orientation1-ccOrientationVerticalSldRight同SldLeftLblBeijingText清華大學(xué)IbltotaltimeAutosizeTrueBackStyleO-TransparentMp3playlVisibleFalse其余控件根據(jù)界面設(shè)置己可?添加代碼’選擇mp3文件PrivateSubbuttonl_Click(ByValeventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)Handlesbuttonl.ClickDimtotaltimesAsIntegerAXCommonDia1og1.ShowOpen()IfLen(AXCommonDialog1.FileName)=0ThenExitSubErr.Number=Mp3Playl.Open(AXCommonDialogl.FileName,つ’取得mp3文件的總時間totaltimes=Mp3Playl.TotalTimeIbltotaltime.Text="播放時間:"&Str(totaltimes\60000)&":"&Str(Int((totaltimesMod60000)/1000))lblmp3name.Fext=AXCommonDialog1.FileName’取得mp3文件的左右聲道咅量leftvolume=Mp3Playl.GetVolumeLeftrightvolume=Mp3Playl.GetVolumeRightsldPos.Value=0’取得mp3文件的總幀數(shù)sldPos.Max=Mp3Playl.FrameCountIblframe.Text="共"&sldPos.Max&"幀"button2.Enabled=Truebutton3.Enabled=Truebutton4.Enabled=TrueEndSub’開始播放PrivateSubbutton2Click(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)Handlesbutton2.ClickMp3Playl.Play()EndSub’暫停播放PrivateSubbutton3_Click(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)Handlesbutton3.ClickMp3Playl.Pause()EndSub’停止播放PrivateSubbutton4_Click(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)Handlesbutton4.ClickMp3Playl.StopOEndSub’程序啟動時,必須進行注冊,否則不能正確播放’設(shè)置左右聲道默認值為中間值PrivateSubFormlLoad(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesMyBase.LoadMp3Playl.Authorize(*LightBringer*,”1441658209")SldLeft.Value=50SldRight.Value=50’在沒有選擇mp3文件之前,令播放、暫停、停止按鈕不可用button2.Enabled=Falsebutton3.Enabled=Falsebutton4.Enabled=FalseEndSub’改變左聲道的音量PrivateSubS1dLeftChange(ByVa1eventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlesSldLeft.ChangeMp3Playl.SetVolume(leftvolume*SldLeft.Value/100,rightvolume*SldRight.Value/100)EndSub’改變播放mp3文件的位置PrivateSubsldPosChange(ByVaieventSenderAsSystem.Object,ByVaieventArgsAsSystem.EventArgs)HandlessldPos.ChangeMp3Playl.Seek(sldPos.Value)Mp3Playl.Play()EndSub?運行結(jié)果單擊菜單“調(diào)試I啟動”或單擊>圖標運行程序。小結(jié)在本實例屮,我們通過使用Mp3play控件來播放MP3文件,從而可以很方便地控制MP3文件的播放。實例62:隨機圖形實例說明在本實例中,我們制作一個應(yīng)用程序,通過選擇不同的按鈕來產(chǎn)生不同的隨機圖形。程序運行結(jié)果如圖62-1所示。璃Rfi機組璃Rfi機組?圖62T運行結(jié)果技術(shù)要點DrawEllipse方法DrawLine方法DrawBezier方法DrawArc方法實現(xiàn)過程新建項冃打開VisualStudio.NET,選擇“新建項目”,在項目類型窗口中選擇“VisualBasic項目”,在模板窗口中選擇“Windows應(yīng)用程序”,在名稱域中輸入“RndPic”,然后選擇保存路徑。單擊“確認”。添加窗體和控件選擇菜單“項目|添加Windows窗體”,為項目添加窗體frmRndPic;在主窗體frmmain上添加六個Button按鈕。設(shè)置屬性對窗體上的控件設(shè)置屬性,對frmmain而言,將Button按鈕的Text屬性改為和界面?致即可。在這里就不再列出。下面在表627中列出了窗體frmRndPic的主要屬性。表62-1窗體frmRndPic的主要屬性值窗體/控件屬性值FrmRndPicBorderStyleO-NoneBackColor&H80000007WindowState2-MaximizedB添加代碼’下面代碼是在主窗體中添加的’選擇按鈕,執(zhí)行不同的畫圖操作PrivateSubbtnLine_Click(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandlesbtnLine.Clickitem=5frmRndpic.Deflnstance.Show()EndSubPrivateSubbtnPoint_Click(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandlesbtnPoint.Clickitem=1frmRndpic.Deflnstance.Show()EndSubPrivateSubbtnCircle_Click(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandlesbtnCircle.Clickitem=2frmRndpic.Deflnstance.Show()EndSubPrivateSubbtnEl1ipse_Click(ByVaisenderAsSystem.Object,ByVaieAsSystem.EventArgs)HandlesbtnEllipse.Clickitem=3frmRndpic.Deflnstance.Show()EndSubPrivateSubbtnArc_Click(ByVais

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論