我們對控件進(jìn)行分組的原因不外乎三個(gè)
創(chuàng)新互聯(lián)主營江夏網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),江夏h5小程序定制開發(fā)搭建,江夏網(wǎng)站營銷推廣歡迎江夏等地區(qū)企業(yè)咨詢
為了獲得清晰的用戶界面而將相關(guān)的窗體元素進(jìn)行可視化分組
編程分組 如對單選按鈕進(jìn)行分組
為了在設(shè)計(jì)時(shí)將多個(gè)控件作為一個(gè)單元來移動(dòng)
在中 有GroupBox Panel TabControl這三個(gè)控件可以實(shí)現(xiàn)上面所提到的三個(gè)分組目的 所以我們稱它們?yōu)榉纸M控件
這三個(gè)控件在功用上十分的相似 特別是GroupBox和Panel控件 只存在一點(diǎn)細(xì)微的差別而已(這個(gè)差別是 只有GroupBox控件可以顯示標(biāo)題 而只有Panel控件可以有滾動(dòng)條) 這里我們就先來了解GroupBox控件的使用
GroupBox(控件組)控件一般是作為其他控件的組的容器的形式存在的 這樣有利于用戶識別 使界面變得更加友好(GroupBox控件相當(dāng)于Visual Basic以前版本的Frame控件) 使用控件組控件可以將一個(gè)窗體中的各種功能進(jìn)一步進(jìn)行分類 例如 將各種選項(xiàng)按鈕控件分隔開
當(dāng)移動(dòng)單個(gè)GroupBox控件時(shí) 它所包含的所有控件也將一起移動(dòng)
在大多數(shù)情況下 對控件組控件沒有實(shí)際的操作 我們用它對控件進(jìn)行分組 通常沒有必要響應(yīng)它的事件 不過 它的Name Text和Font等屬性可能會(huì)經(jīng)常被修改 以適應(yīng)應(yīng)用程序在不同階段的要求
GroupBox控件在工具箱中的圖標(biāo)如圖所示
一 GroupBox控件的常用屬性
Anchor和Dock 這兩個(gè)屬性是所有有用戶界面的控件都有的定位屬性 這里就不啰嗦了
Name屬性 標(biāo)識控件的對象名稱
Text屬性 顯示在GroupBox控件右上方的標(biāo)題文字 可以用來標(biāo)識該控件組的描述
Font和ForeColor屬性 用于改變GroupBox控件的文字大小以及文字的顏色 需要注意的時(shí)候 它不單改變GroupBox控件的Text屬性的文字外觀 同時(shí)也改變其內(nèi)部控件的顯示的Text屬性的文字外觀
二 創(chuàng)建一組控件
在窗體上放置GroupBox控件 從工具箱中拖放一個(gè)GroupBox控件到窗體上的合適位置 調(diào)整大小
在屬性窗口中改變GroupBox控件的Text屬性 作為它的標(biāo)題
在GroupBox控件內(nèi)拖放其它需要的控件 例如RadioButton控件
設(shè)置示例 如圖一所示
圖一 用控件組控件對單選按鈕分組
我們在拖動(dòng)單個(gè)GroupBox控件的時(shí)候 它內(nèi)部的控件也會(huì)隨著移動(dòng) 以保持和GroupBox的相對位置不變 同理 刪除GroupBox控件時(shí) 它所包含的所有控件也會(huì)被刪除掉
當(dāng)我們調(diào)整GroupBox控件所包含的控件的Anchor和Dock屬性的時(shí)候 其參照物將不是Form窗體 而是GroupBox控件了
三 編程添加GroupBox控件以及它所包含的控件
雖然GroupBox控件是在設(shè)計(jì)時(shí)用視圖設(shè)計(jì)布局效果最好 但是無可避免地 很多特殊情況下也是需要在運(yùn)行做添加控件到控件組中的 這里我們就用代碼來完成上圖一界面的繪制
動(dòng)態(tài)添加控件一般需要經(jīng)過下面三個(gè)步驟
創(chuàng)建要添加的控件實(shí)例
設(shè)置新控件的屬性
將控件添加到父控件的 Controls 集合
在Form 代碼的任意位置增加初始化控件的過程InitializeControl() 代碼如下所示
Sub InitializeControl()
首先添加Label和TextBox控件
Dim Label As New System Windows Forms Label
Dim TextBox As New System Windows Forms TextBox
Label
Label Location = New System Drawing Point( )
Label Name = Label
Label Size = New System Drawing Size( )
Label TabIndex =
Label Text = 戶主姓名
TextBox
TextBox Location = New System Drawing Point( )
TextBox Name = TextBox
TextBox Size = New System Drawing Size( )
TextBox TabIndex =
TextBox Text =
把它們添加到父控件Form 的Controls集合中
Me Controls Add(TextBox )
Me Controls Add(Label )
添加三個(gè)GroupBox控件
Dim GroupBox As New System Windows Forms GroupBox
Dim GroupBox As New System Windows Forms GroupBox
Dim GroupBox As New System Windows Forms GroupBox
GroupBox
GroupBox BackColor = System Drawing SystemColors Control
GroupBox Location = New System Drawing Point( )
GroupBox Name = GroupBox
GroupBox Size = New System Drawing Size( )
GroupBox TabIndex =
GroupBox TabStop = False
GroupBox Text = 性別
GroupBox
GroupBox Location = New System Drawing Point( )
GroupBox Name = GroupBox
GroupBox Size = New System Drawing Size( )
GroupBox TabIndex =
GroupBox TabStop = False
GroupBox Text = 單元
GroupBox
GroupBox Location = New System Drawing Point( )
GroupBox Name = GroupBox
GroupBox Size = New System Drawing Size( )
GroupBox TabIndex =
GroupBox TabStop = False
GroupBox Text = 樓層
把它們添加到父控件Form 的Controls集合中
Me Controls Add(GroupBox )
Me Controls Add(GroupBox )
Me Controls Add(GroupBox )
添加RadioButton控件并分別繪制在GroupBox控件內(nèi)
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
Dim RadioButton As New System Windows Forms RadioButton
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 男性
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 女性
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 二單元
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 三單元
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 一單元
RadioButton
RadioButton BackColor = System Drawing SystemColors Control
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 四單元
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 二樓
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 三樓
RadioButton
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 一樓
RadioButton
RadioButton BackColor = System Drawing SystemColors Control
RadioButton Location = New System Drawing Point( )
RadioButton Name = RadioButton
RadioButton Size = New System Drawing Size( )
RadioButton TabIndex =
RadioButton Text = 四樓
分別把它們添加到父控件GroupBox的Controls集合中
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
GroupBox Controls Add(RadioButton )
End Sub
把上一頁的代碼復(fù)制添加后 把控件初始化過程InitializeControl()過程添加到Form 的New構(gòu)造函數(shù)中 如下圖二所示
圖二 在New構(gòu)造函數(shù)中添加過程InitializeControl()
現(xiàn)在按F 運(yùn)行 Form 的窗體控件布局(如下圖三所示)是不是和我們手工布局的圖一的布局是一樣的呢?
lishixinzhi/Article/program/ASP/201311/21749
WebService目前可是目前計(jì)算機(jī)界一個(gè)非常流行的技術(shù)了 以至于有些人把WebService列入目前最熱門的十大技術(shù)之一 的確隨著互聯(lián)網(wǎng)的廣泛應(yīng)用和發(fā)展 尤其是電子商務(wù)的發(fā)展 出于互聯(lián)網(wǎng)上各種復(fù)雜的應(yīng)用系統(tǒng)和對更高安全性的要求 WebService的橫空出世的確滿足了當(dāng)前這些的要求和需要 其中的原因在下文中有詳細(xì)的介紹 本文的主要內(nèi)容是簡要介紹一下WebService的相關(guān)知識 以及使用VisualBasic Net實(shí)現(xiàn)WebServices的具體方法和典型步驟
一 WebService為何物 我們?yōu)槭裁葱枰?/p>
WebService的主要功能就是可以實(shí)現(xiàn)實(shí)現(xiàn)跨平臺的功能調(diào)用 同時(shí)由于WebService中使用XML來進(jìn)行數(shù)據(jù)交換 所以在使用WebService時(shí)不用擔(dān)心防火墻的影響 由于WebService集成了各種功能 并提供了一個(gè)友好的界面 所以在WebService能夠?qū)崿F(xiàn)軟件的重用
另外WebService的調(diào)用非常簡單 簡而言之調(diào)用互聯(lián)網(wǎng)上的WebService就如同調(diào)用本地的組件一樣簡單 就是通過HTTP協(xié)議來調(diào)用互聯(lián)網(wǎng)上的組件 至于具體的調(diào)用方法 請參閱本文第五節(jié)第七段的內(nèi)容 所以Web Service就是互聯(lián)網(wǎng)上的組件調(diào)用
二 和Web Service相關(guān)的標(biāo)準(zhǔn) 協(xié)議
Web Service是通過一系列標(biāo)準(zhǔn)和協(xié)議來保證和程序之間的動(dòng)態(tài)連接和實(shí)現(xiàn)其安全調(diào)用的 其中主要的標(biāo)準(zhǔn)和協(xié)議是 XML WSDL SOAP HTTP UDDI 下面就簡要介紹這些標(biāo)準(zhǔn)和協(xié)議
XML Web Service之間和Web Service和應(yīng)用程序之間都是采用XML進(jìn)行數(shù)據(jù)交換的 Web Service由于基于了XML 這樣Web Service在具備XML帶來的優(yōu)勢的同時(shí) 也擁有了由于XML所帶來的缺點(diǎn) 其中XML所帶來的最重要缺點(diǎn)就是Web Service將大量的占有CPU的資源 因?yàn)閄ML數(shù)據(jù)要經(jīng)過多步處理才能被系統(tǒng)使用 所以 即使調(diào)用一個(gè)功能較小的Web Service 也會(huì)感覺速度很慢 所以網(wǎng)絡(luò)中對運(yùn)行Web Service的主機(jī)要求是很高的
HTTP 應(yīng)用程序是提供HTTP協(xié)議來調(diào)用Web Service的 所以HTTP在Web Service調(diào)用過程中 起著通道的作用
WSDL 是Web Service描述語言的簡寫 它是XML格式 其作用是描述Web Service 指示應(yīng)用程序和與Web Servie交互的方法 當(dāng)實(shí)現(xiàn)了某種Web Service服務(wù)時(shí) 為了讓別的程序調(diào)用 就必須告訴此Web Service的接口 如 服務(wù)名稱 服務(wù)所在的機(jī)器名稱 監(jiān)聽端口號 傳遞參數(shù)的類型等等 WSDL就是規(guī)定了有關(guān)Web Services描述的標(biāo)準(zhǔn)
UDDI 是Universal Description Discovery and Integration的縮寫 簡單說 UDDI用于集中存放和查找WSDL描述文件 起著目錄服務(wù)器的作用
SOAP 是 Simple Object Access Protocol 的縮寫 即 簡單對象訪問協(xié)議 SOAP是一種消息傳遞的協(xié)議 它規(guī)定了Web Services之間傳遞信息的方式
三 本文章的程序設(shè)計(jì) 調(diào)試和運(yùn)行的環(huán)境
( ) 微軟公司視窗 中文企業(yè)版
( ) Visual Studio Net 企業(yè)構(gòu)建版 Net FrameWork SDK 版本號
( ) IIS服務(wù)啟動(dòng)
四 Visual Basic Net實(shí)現(xiàn)Web Service
Net 的大的推動(dòng)了Web Service的發(fā)展 而Visual Studio Net的出現(xiàn)又極大的推動(dòng)了Web Service的的廣泛應(yīng)用 在Visual Studio Net推出之前 編寫一個(gè)Web Service是一項(xiàng)非常復(fù)雜的工作 同樣調(diào)用這個(gè)Web Service也十分麻煩 由于Visual Studio Net對Web Service提供了較強(qiáng)的支持 很多細(xì)致 煩雜的工作都由Visual Studio Net自動(dòng)完成了 這樣就使得上述工作變得非常簡單 甚至不了解Web Service和其相關(guān)的標(biāo)準(zhǔn) 協(xié)議 也可以使用Visual Studio Net編寫Web Service 并使用這個(gè)Web Service 下面就來用Visual Basic Net實(shí)現(xiàn)一個(gè)Web Service 此Web Service和數(shù)據(jù)庫相關(guān) 數(shù)據(jù)庫類型選用的是Sql Server 此Web Service提供了二個(gè)函數(shù)功能調(diào)用 其一名稱為Binding 用以實(shí)現(xiàn)數(shù)據(jù)綁定 其二名稱為Update 用以更新數(shù)據(jù)庫中的數(shù)據(jù)
以下就是Visual Basic Net實(shí)現(xiàn)此Web Service的具體步驟
啟動(dòng)Visual Studio Net
選擇菜單「文件」|「新建」|「項(xiàng)目」后 彈出「新建項(xiàng)目」對話框
將「項(xiàng)目類型」設(shè)置為「Visual Basic項(xiàng)目」
將「模板」設(shè)置為「ASP NET Web 服務(wù)」
在「位置」的文本框中輸入//localhost/UpdateDataWebService 后 單擊「確定」按鈕 這樣在Visual Studio Net就會(huì)計(jì)算機(jī)Internet信息服務(wù)的默認(rèn)目錄中創(chuàng)建一個(gè)名稱為 UpdateDataWebService 文件夾 里面存放的是此項(xiàng)目的文件 具體如圖 所示
圖 創(chuàng)建Web Service項(xiàng)目對話框
選中「解決方案資源管理器」中的 Service a *** x 文件 單擊鼠標(biāo)右鍵 在彈出的菜單中選擇「查看代碼」 則進(jìn)入Service a *** x vb的編輯界面
在Service a *** x……vb的首部 在導(dǎo)入命名空間的代碼區(qū)中添加下列代碼 下列代碼作用是導(dǎo)入命名空間System Data SqlClient
Imports System Data SqlClient
在Service a *** x……vb文件的 Public Class Service Inherits System Web Services WebService 代碼后 添加下列代碼 下列代碼是在Web Service中定義二個(gè)功能調(diào)用
WebMethod ( ) Public Function Binding ( ) As DataSet Dim con As New SqlConnection ( Server = localhost ; uid = sa ; pwd = ; database = northwind ) Dim daCust As New SqlDataAdapter ( Select * From Customers con ) Dim ds As New DataSet ( ) daCust Fill( ds Cust ) Return dsEnd FunctionWebMethod ( ) Public Function Update ( ByVal ds As DataSet ) As DataSet Dim con As New SqlConnection ( Server = localhost ; uid = sa ; pwd = ; database = northwind ) Dim daCust As New SqlDataAdapter ( Select * From Customers con ) Dim cbCust As New SqlCommandBuilder ( daCust ) daCust Update ( ds Cust ) Return dsEnd Function
保存上述的修改 一個(gè)簡單的操作Sql Server數(shù)據(jù)庫的Web Service就完成了 此時(shí)單擊快捷鍵F 此Web Service就開始運(yùn)行 并可以對外提供服務(wù)了 具體如圖 所示:
圖 :Web Service提供服務(wù)是的界面
Service a *** x vb的代碼清單如下:
Imports System Web ServicesImports System Data SqlClientWebService ( Namespace := ) _Public Class Service Inherits System Web Services WebServiceWebMethod ( ) Public Function Binding ( ) As DataSet Modify this Connection string to use your SQL Server and log on Dim con As New SqlConnection ( Server=localhost;uid=sa;pwd=;database=northwind ) Dim daCust As New SqlDataAdapter ( Select * From Customers con ) Dim ds As New DataSet ( ) daCust Fill ( ds Cust ) Return dsEnd FunctionWebMethod ( ) Public Function Update ( ByVal ds As DataSet ) As DataSet Dim con As New SqlConnection ( Server=localhost;uid=sa;pwd=;database=northwind ) Dim daCust As New SqlDataAdapter ( Select * From Customers con ) Dim cbCust As New SqlCommandBuilder ( daCust ) daCust Update ( ds Cust ) Return dsEnd Function#Region Web 服務(wù)設(shè)計(jì)器生成的代碼 Public Sub New ( ) MyBase New ( ) 該調(diào)用是 Web 服務(wù)設(shè)計(jì)器所必需的 InitializeComponent ( ) 在 InitializeComponent ( ) 調(diào)用之后添加您自己的初始化代碼End Sub Web 服務(wù)設(shè)計(jì)器所必需的Private ponents As System ComponentModel IContainer 注意 以下過程是 Web 服務(wù)設(shè)計(jì)器所必需的 可以使用 Web 服務(wù)設(shè)計(jì)器修改此過程 不要使用代碼編輯器修改它 System Diagnostics DebuggerStepThrough ( ) Private Sub InitializeComponent ( ) ponents = New System ComponentModel Container ( )End SubProtected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean ) CODEGEN: 此過程是 Web 服務(wù)設(shè)計(jì)器所必需的 不要使用代碼編輯器修改它 If disposing Then If Not ( ponents Is Nothing ) Thenponents Dispose ( ) End IfEnd IfMyBase Dispose ( disposing )End Sub#End Region Web 服務(wù)示例 HelloWorld ( ) 示例服務(wù)返回字符串 Hello World 若要生成項(xiàng)目 請取消注釋以下行 然后保存并生成項(xiàng)目 若要測試此 Web 服務(wù) 請確保 a *** x 文件為起始頁 并按 F 鍵 WebMethod ( ) Public Function HelloWorld ( ) As String HelloWorld = Hello World End FunctionEnd Class
下面就來介紹Visual Basic Net中使用這個(gè)Web Service提供的服務(wù)來更新數(shù)據(jù)庫的實(shí)現(xiàn)方法
五 在Visual Basic Net調(diào)用Web Service提供的服務(wù):
當(dāng)Web Service已經(jīng)處于對外提供服務(wù)狀態(tài) Visual Basic Net就可以通過HTTP 調(diào)用 來使用這些服務(wù)了 當(dāng)然前提是要了解Web Service對外提供服務(wù)所對應(yīng)的URL 當(dāng)了解到Web Service對應(yīng)的URL后 Visual Basic Net就像是使用本地的類庫一樣使用Web Service中提供的各種功能 所以有些人說 Web Service從實(shí)質(zhì)上說 就是通過HTTP調(diào)用遠(yuǎn)程組件的一種方式 在Visual Basic Net具體實(shí)現(xiàn)加入Web Service可參閱下面步驟中的第七步
在下面介紹的這個(gè)數(shù)據(jù)庫應(yīng)用程序是通過使用上面的Web Service中提供的 Binding 服務(wù) 對程序中DataGrid組件實(shí)現(xiàn)數(shù)據(jù)綁定 提供使用Web Service中提供的 Update 服務(wù) 通過程序中的DataGrid來修改數(shù)據(jù)庫 下面就是Visual Basic Net中使用Web Service提供服務(wù)來編寫數(shù)據(jù)庫應(yīng)用程序的具體步驟 :
啟動(dòng)Visual Studio Net
選擇菜單【文件】|【新建】|【項(xiàng)目】后 彈出【新建項(xiàng)目】對話框
將【項(xiàng)目類型】設(shè)置為【Visual Basic項(xiàng)目】
將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】
在【名稱】文本框中輸入【TestWebService】
在【位置】的文本框中輸入【E:\VS NET項(xiàng)目】 然后單擊【確定】按鈕 這樣在 E:\VS NET項(xiàng)目 中就產(chǎn)生了名稱為 TestWebService 文件夾 里面存放的就是TestWebService項(xiàng)目的所有文件
選擇【解決方案資源管理器】|【引用】后 單擊鼠標(biāo)右鍵 在彈出的菜單中選擇【添加Web 引用】 在彈出的【添加Web引用】對話框中的【地址】文本框中輸入 后 單擊回車鍵后 可得圖 所示界面 單擊圖 中【添加引用】按鈕 則在【TestWebService】項(xiàng)目中加入了Web引用 請注意 就是上面完成的Web Service對外提供服務(wù)的URL地址 具體可參閱圖 所示:
圖 :在【TestWebService】添加Web Service提供的服務(wù)
從【工具箱】中的【W(wǎng)indows窗體組件】選項(xiàng)卡中往Form 窗體中拖入下列組件 并執(zhí)行相應(yīng)的操作:
一個(gè)DataGrid組件
二個(gè)Button組件 分別是Button 至Button 并在這二個(gè)Button組件拖入Form 的設(shè)計(jì)窗體后 分別雙擊它們 則系統(tǒng)會(huì)在Form vb文件分別產(chǎn)生這二個(gè)組件的Click事件對應(yīng)的處理代碼
按照表 所示調(diào)整窗體中各組件屬性的數(shù)值
組件類型 組件名稱 屬性 設(shè)置結(jié)果 Form Form Text 測試Web Service Form MaximizeBox False Form FormBorderStyle FixedSingle Button Button Text 綁定 Button FlatStyle Flat Button Text 修改 Button FlatStyle Flat
表 :【TestWebService】項(xiàng)目中組件的主要屬性及其對應(yīng)數(shù)值
在調(diào)整完組件屬性值后 再按照圖 所示調(diào)整組件的位置和排列順序:
圖 :【TestWebService】項(xiàng)目中組件排列位置和順序
把Visual Studio Net的當(dāng)前窗口切換到Form vb的代碼編輯窗口 并用下列代碼替換Form vb中的Button 的Click事件對應(yīng)的處理代碼 下列代碼功能是使用Web Service中提供的 Binding 服務(wù)對DataGrid組件實(shí)現(xiàn)數(shù)據(jù)綁定:
Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) DataGrid DataSource = MyService Binding ( ) DataGrid DataMember = Cust End Sub
用下列代碼替換Form vb中的Button 的Click事件對應(yīng)的處理代碼 下列代碼功能是使用Web Service中提供的 Update 服務(wù)實(shí)現(xiàn)通過DataGrid來修改數(shù)據(jù)庫數(shù)據(jù):
Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) Dim ds As DataSet = DataGrid DataSource Dim dsChanges As DataSet = ds GetChanges ( ) If Not ( dsChanges Is Nothing ) Thends Merge ( MyService Update ( dsChanges ) True ) End IfEnd Sub
至此 【TestWebService】項(xiàng)目的全部工作就完成了 調(diào)用Web Service是不是很簡單 此時(shí)單擊快捷鍵F 運(yùn)行程序后 單擊程序中的【綁定】按鈕就會(huì)對程序中的DataGrid組件實(shí)現(xiàn)數(shù)據(jù)綁定 單擊程序中的【修改】按鈕 則程序會(huì)根據(jù)DataGrid中的內(nèi)容來更新數(shù)據(jù)庫 圖 就是【TestWebService】的運(yùn)行界面:
圖 :【TestWebService】的運(yùn)行界面
Form vb的代碼清單如下:
Public Class Form Inherits System Windows Forms Form#Region Windows 窗體設(shè)計(jì)器生成的代碼 Public Sub New ( ) MyBase New ( ) 該調(diào)用是 Windows 窗體設(shè)計(jì)器所必需的 InitializeComponent ( ) 在 InitializeComponent ( ) 調(diào)用之后添加任何初始化End Sub 窗體重寫處置以清理組件列表 Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean ) If disposing ThenIf Not ( ponents Is Nothing ) Then ponents Dispose ( )End If End If MyBase Dispose ( disposing )End Sub Windows 窗體設(shè)計(jì)器所必需的Private ponents As System ComponentModel IContainer 注意 以下過程是 Windows 窗體設(shè)計(jì)器所必需的 可以使用 Windows 窗體設(shè)計(jì)器修改此過程 不要使用代碼編輯器修改它 Friend WithEvents Button As System Windows Forms Button Friend WithEvents Button As System Windows Forms Button Friend WithEvents DataGrid As System Windows Forms DataGrid System Diagnostics DebuggerStepThrough ( ) Private Sub InitializeComponent ( ) Me Button = New System Windows Forms Button ( ) Me Button = New System Windows Forms Button ( ) Me DataGrid = New System Windows Forms DataGrid ( ) CType ( Me DataGrid System ComponentModel ISupportInitialize ) BeginInit ( ) Me SuspendLayout ( ) Me Button FlatStyle = System Windows Forms FlatStyle Flat Me Button Location = New System Drawing Point ( ) Me Button Name = Button Me Button Size = New System Drawing Size ( ) Me Button TabIndex = Me Button Text = 綁定 Me Button FlatStyle = System Windows Forms FlatStyle Flat Me Button Location = New System Drawing Point ( ) Me Button Name = Button Me Button Size = New System Drawing Size ( ) Me Button TabIndex = Me Button Text = 修改 Me DataGrid DataMember = Me DataGrid Dock = System Windows Forms DockStyle Top Me DataGrid HeaderForeColor = System Drawing SystemColors ControlText Me DataGrid Name = DataGrid Me DataGrid Size = New System Drawing Size ( ) Me DataGrid TabIndex = Me AutoScaleBaseSize = New System Drawing Size ( ) Me ClientSize = New System Drawing Size ( ) Me Controls AddRange ( New System Windows Forms Control ( ) {Me DataGrid Me Button Me Button } ) Me Name = Form Me Text = 測試Web Service CType ( Me DataGrid System ComponentModel ISupportInitialize ) EndInit ( ) Me ResumeLayout ( False )End Sub#End RegionPrivate Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) DataGrid DataSource = MyService Binding ( ) DataGrid DataMember = Cust End SubPrivate Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) Dim ds As DataSet = DataGrid DataSource Dim dsChanges As DataSet = ds GetChanges ( ) If Not ( dsChanges Is Nothing ) Thends Merge ( MyService Update ( dsChanges ) True ) End IfEnd SubEnd Class
六 總結(jié)
lishixinzhi/Article/program/net/201311/11839
1、建立應(yīng)用程序界面
2、設(shè)置對象的屬性
3、編寫應(yīng)用程序的代碼
4、保存和運(yùn)行程序
VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建Active?X控件,用于高效生成類型安全和面向?qū)ο蟮膽?yīng)用程序。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。
擴(kuò)展資料
VB語言缺點(diǎn)
Visual Basic 語言具有不支持繼承、無原生支持多線程、異常處理不完善等三項(xiàng)明顯缺點(diǎn),使其有所局限性(此些缺點(diǎn)皆已在 vb 點(diǎn)虐 獲得改進(jìn))。
1、不支持繼承
VB 5.0 和 VB 6.0 都是基于對象的編程語言,但是不包含繼承特性。VB 中提供了特殊的類的功能,但是還是不能滿足程序員的需求。
2、無原生支持多線程
Visual Basic 對于多線程無原生支持,只能通過Windows API的調(diào)用實(shí)現(xiàn),且極其的不穩(wěn)定。因?yàn)樵贏PI創(chuàng)建的線程中,并沒有自動(dòng)初始化運(yùn)行時(shí)庫,導(dǎo)致部分的函數(shù)無法使用。一般的,在VB6等早期的VB開發(fā)環(huán)境下,使用API創(chuàng)建線程的目的是完成容易使程序假死的大量數(shù)據(jù)或者邏輯的計(jì)算。
3、異常處理不完善
Visual Basic 中內(nèi)置異常處理,即使未寫異常處理代碼,一旦用戶出錯(cuò)也會(huì)彈出一個(gè)明確寫出出錯(cuò)原因?qū)υ捒?,接著程序終止。
Visual Basic 中可以使用 Err.Raise拋出異常。對系統(tǒng)及用戶拋出的異常的處理常用兩種模式:一是使用 On Error Resume Next 處理錯(cuò)誤;另一種是使用 On Error Goto 將運(yùn)行引入錯(cuò)誤處理代碼。但相對 C++ 等語言而言,這樣的異常處理破壞了代碼的結(jié)構(gòu)。
1、作驗(yàn)證,可用正則表達(dá)式、vb點(diǎn)虐 的自帶函數(shù)(相對簡單)
2、可采用排序方式
3、循環(huán)加限制條件
4 write