一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

用VB.NET做WinForm的應(yīng)用程序(To do with VB.NET WinFor...

 filedot 2011-12-24

用VB.NET做WinForm的應(yīng)用程序 [ English ]

2008-2-24 1:52:17 中國(guó)學(xué)網(wǎng) 跟貼 0 條 網(wǎng)友投稿

 


  用VB.NET做WinForm的應(yīng)用程序
馬金虎 
在VB.NET程序設(shè)計(jì)中,設(shè)計(jì)Windows的窗體已經(jīng)完全變了樣。在.Net FrameWork中,任一個(gè)Windows窗體都是通過(guò)繼承名稱(chēng)空間中System.Windows.Forms中的一個(gè)叫Form類(lèi)而產(chǎn)生的。用VB.NET做一個(gè)WinForm(Windows Form即Windows 窗體)應(yīng)用程序?qū)τ谟肰B.NET的程序員來(lái)說(shuō)一個(gè)基本的,也是最重要的。應(yīng)用本文就是通過(guò)一些例子,循序漸進(jìn)的介紹用VB.NET做Windows 應(yīng)用程序的基本要點(diǎn)。這些要點(diǎn)就是:創(chuàng)建一個(gè)窗體、為窗體增加組件、編寫(xiě)響應(yīng)事件。在程序中使用了面向?qū)ο蟮姆治龇椒▉?lái)設(shè)計(jì)WinFrom。

一. 程序設(shè)計(jì)及運(yùn)行環(huán)境
(1).視窗2000專(zhuān)業(yè)版本
(2)..Net FrameWork SDK Beta 2

二. 創(chuàng)建第一個(gè)VB.NET的窗體
VB.NET的程序員可以利用.Net FrameWork的基本類(lèi)型庫(kù),非常方便、快捷的創(chuàng)建一個(gè)
Windows的應(yīng)用程序。在System.Windows.Forms名稱(chēng)空間中提供了你需要?jiǎng)?chuàng)建一個(gè)Windows Form應(yīng)用程序的所有類(lèi)型。你可以通過(guò)繼承System.Windows.Forms.Form類(lèi),來(lái)建立一個(gè)WindowsForm。下面代碼的作用就是通過(guò)繼承System.Windows.Forms.Form來(lái)建立一個(gè)名字為Form1的類(lèi):
Public Class Form1 : Inherits System.Windows.Forms.Form
End Class


請(qǐng)注意如果你把Inherits關(guān)鍵字部分放在另外一行,你就不需要在類(lèi)的名字和
Inherits關(guān)鍵字中間加上冒號(hào),具體如下:
Public Class Form1
Inherits System.Windows.Forms.Form
End Class


在本文中一般定義了二個(gè)Sub,分別為New( ),InitializeComponent()。其中第一
個(gè)是一個(gè)構(gòu)造器,當(dāng)你用NEW關(guān)鍵字繼承了一個(gè)對(duì)象,此Class中的一個(gè)構(gòu)造器就會(huì)被調(diào)用。在此構(gòu)造器中,通常是寫(xiě)一些初始化的代碼。如果你的初始化代碼有很多行,你可以建立一個(gè)PrivateSub來(lái)管理這些代碼,這就是--InitializeComponent()。
下面就是第一個(gè)Form的源程序(form1.vb)和運(yùn)行后的界面:
Imports System.Windows.Forms
Imports System.ComponentModel
Public Class Form1
Inherits System.Windows.Forms.Form
Public Sub New ( )
InitializeComponent( )
End Sub

Private Sub InitializeComponent( )
Me.Text = "第一個(gè)空的窗體!"
Me.Width = 400
Me.Height = 300
End Sub
End Class

Module Module1
Sub Main ( )
Application.Run ( new Form1 ( ) )
End sub
End Module


通過(guò)以下編譯命令就可以得到一個(gè)Windows Form可執(zhí)行文件。
Vbc /t:winexe /r:system.dll /r:system.windows.forms.dll form1.vb





這只是一個(gè)沒(méi)有任何組件的空的窗體,只有加入組件的窗體才是用途的,接下來(lái)的就介紹如何在窗體上加入組件。

三.在窗體上加入組件(form2.vb):
在.Net FrameWork的基本類(lèi)型庫(kù)中提供了很多可以常用的組件。在窗體中加入組件一般需要以下三個(gè)步驟:
(1).定義一個(gè)組件變量
(2).獲得一個(gè)組件的實(shí)例并初始化
(3).在窗體上加入組件
在程序中應(yīng)注意以下幾點(diǎn):
(1).由于在VB.NET中,每個(gè)變量都有著不同的范圍。所有在什么地點(diǎn)聲明變量就顯得比較重要。譬如在一個(gè)函數(shù)中聲明的變量只能在此函數(shù)中使用。如果你想在整個(gè)Class中使用某個(gè)變量,就在Class的基本聲明。
(2).得到一個(gè)組件的實(shí)例和獲得一個(gè)對(duì)象的實(shí)例相似。使用了NEW關(guān)鍵字,你就獲得了一個(gè)組件的的實(shí)例,就可以加入到Form中。但是你不能直接加入到Form中,因?yàn)樵贔orm類(lèi)中沒(méi)有加入組件的方法。但是Form類(lèi)可以繼承Control類(lèi)中的Controls屬性。在Form類(lèi)中,可以使用這個(gè)屬性得到窗體中的System.Windows.Forms.Form.ControlCollection對(duì)象。在Form.ControlCollection類(lèi)中描述了所有可以在窗體中使用的組件。你可以使用其中的Add和Remove方法在窗體中加入或者是刪除組件。
在理解了上面的知識(shí)以后,我們就試圖來(lái)在窗體上加入一個(gè)按鈕和一個(gè)文本框。
以下就是源程序代碼(Form2.vb)和程序運(yùn)行后的界面
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel
Imports System

Public Class Form1
Inherits Form

注釋?zhuān)?定義一個(gè)按鈕和文本框
Private Button1 As Button
Private TextBox1 As TextBox

Public Sub New()
InitializeComponent ( )
End Sub

Private Sub InitializeComponent()
Me.Text = "在窗體上加入組件!"
Me.Width = 400
Me.Height = 300

Button1 = New Button ( )
TextBox1 = New TextBox ( )

Button1.Left = 200
Button1.Top = 200
Button1.Width = 100
Button1.Height = 40
Button1.TabIndex = 0
Button1.Text = "確定"

TextBox1.Left = 200
TextBox1.Top = 30
TextBox1.Width = 150
TextBox1.Height = 40

Me.Controls.Add ( Button1 )
Me.Controls.Add ( TextBox1 )
End Sub
End Class

Module Module1
Sub Main ( )
Application.Run ( new Form1 ( ) )
End sub
End Module


通過(guò)以下編譯命令編譯后,運(yùn)行界面如下:
Vbc /t:winexe /r:system.dll /r:system.windows.forms.dll form2.vb



圖02:加入了一個(gè)按鈕和一個(gè)文本框的窗體


四.添加了事件的窗體(form3.vb):
VB.NET的上一個(gè)版本是VB,他準(zhǔn)確的說(shuō)不是一個(gè)完全的面向?qū)ο蟮木幊陶Z(yǔ)言,而是一個(gè)面向事件的編程語(yǔ)言。在VB中,編寫(xiě)響應(yīng)事件的程序是一件非常容易的事情。例如:如果你已經(jīng)創(chuàng)建了一個(gè)按鈕叫Button1,你要編響應(yīng)點(diǎn)擊此按鈕的事件,你所要做的全部工作就是創(chuàng)建一個(gè)叫Button1_Click的事件過(guò)程。(實(shí)際上VB的IDE已經(jīng)替你做了這些)。在VB.NET中也是如此,在設(shè)計(jì)模式下,你建立一個(gè)組件,你就可以通過(guò)點(diǎn)擊此組件告訴Visual Studio .Net你想要寫(xiě)什么樣事件處理過(guò)程。但在本節(jié),我們將告訴你如何手動(dòng)完成這些,這樣將會(huì)有助于你理解在VB.NET中事件是如何工作的。
如果你想要一個(gè)對(duì)象響應(yīng)事件,那么在聲明他的時(shí)候要帶上關(guān)鍵字WithEvents。例如,如果你想在程序中編寫(xiě)一個(gè)按鈕的事件,在聲明的時(shí)候用:
Private WithEvents Button1 As Button

代替:
接著你還有為對(duì)象要響應(yīng)的事件創(chuàng)建事件過(guò)程。例如,對(duì)一個(gè)Button1,要編寫(xiě)單擊(Click)過(guò)程,你就需要?jiǎng)?chuàng)建Button1_Click,具體如下:
Private Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
注釋?zhuān)涸诖藢?xiě)事件處理代碼
End Sub

Form類(lèi)和所有組件的類(lèi)都繼承了Control類(lèi)中的事件。在.Net FrameWork中的手冊(cè)中,System.Windows.Forms.Control中共定義了大約58個(gè)事件,像:Click,DoubleClick, GotFocus, LostFocus, KeyUp等等。
以下就是在窗體中定義了Button1的Click和GotFocus事件的例子。
源程序代碼(form3.vb),及運(yùn)行后的界面
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel
Imports System

Public Class Form1
Inherits Form
Private WithEvents Button1 As Button
Private TextBox1 As TextBox

Public Sub New()
InitializeComponent ( )
End Sub

Private Sub InitializeComponent ( )
Me.Text = "處理事件的窗體!"
Me.Width = 400
Me.Height = 300

Button1 = New Button ( )
TextBox1 = New TextBox ( )

Button1.Left = 200
Button1.Top = 200
Button1.Width = 100
Button1.Height = 40
Button1.TabIndex = 0
Button1.Text = "按鈕"

TextBox1.Left = 200
TextBox1.Top = 30
TextBox1.Width = 150
TextBox1.Height = 40

Me.Controls.Add ( Button1 )
Me.Controls.Add ( TextBox1 )


End Sub

Private Sub Button1_Click ( ByVal senderAs Object , _
ByVal e As System.EventArgs ) Handles Button1.Click
TextBox1.Text = "單擊按鈕!"

End Sub

Private Sub Button1_GotFocus ( ByVal senderAs Object, _
ByVal e As System.EventArgs ) Handles Button1.GotFocus
TextBox1.Text = "按鈕獲得了焦點(diǎn)!"

End Sub
End Class

Module Module1
Sub Main ( )
Application.Run ( new Form1 ( ) )
End sub
End Module


在用以下命令編譯文件,運(yùn)行后得到以下界面:



圖03:按鈕獲得焦點(diǎn)時(shí)的運(yùn)行界面




圖04:點(diǎn)擊按鈕時(shí)的運(yùn)行界面


五.總結(jié)
至此我們已經(jīng)完成了用VB.NET做一個(gè)完整的Windows應(yīng)用程序的全部過(guò)程,雖然結(jié)構(gòu)上相對(duì)簡(jiǎn)單,但都比較具有代表性,可以觸類(lèi)旁通,在此基礎(chǔ)上創(chuàng)建出結(jié)構(gòu)更復(fù)雜、功能更完備的Windows應(yīng)用程序。 轉(zhuǎn)帖于 Xue163.com_VB.NET

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    在线日韩欧美国产自拍| 91亚洲精品综合久久| 热久久这里只有精品视频| 美女被后入视频在线观看| 国产av乱了乱了一区二区三区| 草草视频福利在线观看| 中文字幕精品少妇人妻| 日韩欧美三级中文字幕| 国产91色综合久久高清| 欧美人妻一区二区三区| 亚洲国产精品久久琪琪| 男生和女生哪个更好色| 亚洲五月婷婷中文字幕| 国产人妻熟女高跟丝袜| 日本不卡在线视频你懂的 | 欧美又黑又粗大又硬又爽| 好吊色免费在线观看视频| 午夜色午夜视频之日本| 亚洲欧美日韩综合在线成成| 五月婷婷缴情七月丁香| 亚洲内射人妻一区二区| 日本一二三区不卡免费| 国产一区一一一区麻豆| 亚洲黑人精品一区二区欧美| 一区二区三区在线不卡免费| 人妻偷人精品一区二区三区不卡 | 99久久成人精品国产免费| 91久久精品国产一区蜜臀| 亚洲五月婷婷中文字幕| 大胆裸体写真一区二区| 亚洲精品国男人在线视频| 日韩精品免费一区二区三区| 99久久免费看国产精品| 日韩国产亚洲一区二区三区| 精品久久av一二三区| 国产又粗又猛又黄又爽视频免费| 少妇人妻精品一区二区三区 | 久久免费精品拍拍一区二区| 国产欧美日韩不卡在线视频| 精品国产亚洲区久久露脸| 免费精品国产日韩热久久|