日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳細介紹VB.NET動態(tài)控件

VB.NET還是比較常用的,于是我研究了一下VB.NET動態(tài)控件,在這里拿出來和大家分享一下,希望對大家有用。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、做網(wǎng)站、普洱網(wǎng)絡(luò)推廣、成都微信小程序、普洱網(wǎng)絡(luò)營銷、普洱企業(yè)策劃、普洱品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供普洱建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

本文的討論也將著眼于這兩種情況。首先是當程序員需要動態(tài)建立一個控件并將代碼附著于控件之上時。例如,你或許想創(chuàng)建一個鏈接列表,但是不知道需要創(chuàng)建鏈接的數(shù)量或是鏈接中會出現(xiàn)什么樣的數(shù)據(jù)。第二種是當程序員需要定義代碼以反映出特殊需求的時候。例如,你或許要執(zhí)行能反映用戶系統(tǒng)配置的代碼。

類似上述的情況當然不會每天都上演。事實上,它們只在非常情況下才出現(xiàn)。然而,作為程序員,仍然要意識到.NET為解決動態(tài)情形提供了方案。有了正確的技巧,你就可以寫出能靈活處理動態(tài)情況的應(yīng)用程序了。

使用VB.NET動態(tài)控件

許多程序員總會遇到需要創(chuàng)建VB.NET動態(tài)控件的時候。我們所展示的例子中程序員向FlowLayoutPanel中添加了LinkLabels.或許你可以個這樣的設(shè)置來記錄和保存常用的URL,文件,網(wǎng)絡(luò)地址或是其他資源所在位置的數(shù)值。這一示例沒有真正保存鏈接,但是你可以使用XML序列化功能來實現(xiàn)保存。

每次當用戶點擊Test按鈕時,示例代碼就會動態(tài)創(chuàng)建一個新的LinkLabel控件。真正的演示代碼并不復(fù)雜。以下就展示了創(chuàng)建這類控件以及將控件放入FlowLayoutPanel,lstLabel中通常所需要做的一切。

向FlowLayoutPanel中添加新的鏈接

 
 
 
  1. Private Sub btnTest_Click()     
  2. Handles btnTest.Click     
  3. ' Create a link.     
  4. Dim NewLink As LinkLabel = New LinkLabel()     
  5. ' Add some properties to it.     
  6. NewLink.Text = DateTime.Now     
  7. .ToLongTimeString()     
  8. ' Set the click event handler.     
  9. AddHandler NewLink.Click,     
  10. AddressOf NewLink_Click     
  11. ' Place the button on the form.     
  12. lstLinks.Controls.Add(NewLink)     
  13. End Sub 

如你所料,該代碼開始的時候創(chuàng)建了一個新的LinkLabel并為其賦予了一些值。這一示例使用的是當前時間。你的代碼或許能夠?qū)δ骋徽鎸嵸Y源進行訪問。

請注意該代碼也向鏈接的Click事件中指定了一個處理程序。你必須使用示例中的AddHandler技巧,因為普通的Handles關(guān)鍵詞路徑不起作用。一方面,設(shè)計應(yīng)用程序的時候你并不清楚控件的名稱。即便你為控件指定了一個名稱,你也不知道用戶要創(chuàng)建的控件數(shù)量,所以我們沒有辦法清楚會有多少處理程序會被創(chuàng)建。處理程序的代碼與控件代碼類似,因此沒有必要創(chuàng)建多個處理程序。用于這個示例的處理代碼見例二。例二:處理VB.NET動態(tài)控件點擊事件

 
 
 
  1. Private Sub NewLink_Click( _ ByVal sender As System.Object, ByVal e As System.EventArgs)  
  2. ' Verify that you actually have a LinkLabel  
  3. If Not sender.GetType() Is GetType(LinkLabel) Then  
  4. MessageBox.Show("Wrong control type provided!")  
  5. Return  
  6. End If  
  7. ' Convert the input sender to a Button.  
  8. Dim ThisLink As LinkLabel = sender   
  9. ' Show that we have the correct button.  
  10. MessageBox.Show("You created this link at: " + ThisLink.Text)  
  11. End Sub  

你可能已經(jīng)注意到例一中的事件處理器使用的是寬松代表——它沒有將ByVal發(fā)送器作為System.Object,也沒有將ByVal e作為System.EventArgs作為參數(shù)因為它不需要這二者。然而,當你創(chuàng)建一個事件處理器來創(chuàng)建VB.NET動態(tài)控件時,通常你需要將ByVal發(fā)送器作為 System.Object參數(shù),這意味著將這兩者都包含其中。

有些程序員在創(chuàng)建事件處理器的時候會出現(xiàn)一個錯誤,即沒有檢查傳入控件的類型。發(fā)送器對象可能包含多選擇,而如果未對事件處理器進行事件處理類型的設(shè)置,那么你就會面臨更多的選擇。我們的示例代碼一開始就檢查了傳入控件對象的類型。這樣以來發(fā)送器就不會像下面所展示的代碼一樣:

 
 
 
  1. Private Sub btnTest2_Click() Handles btnTest2.Click   
  2. ' Create a link.  
  3. Dim NewButton As Button = New Button()  
  4. ' Add some properties to it.  
  5. NewButton.Text = DateTime.Now.ToLongTimeString()  
  6. ' Set the click event handler.  
  7. AddHandler NewButton.Click, AddressOf NewLink_Click  
  8. ' Place the button on the form.  
  9. lstLinks.Controls.Add(NewButton)  
  10. End Sub  

此代碼在FlowLayoutPanel中創(chuàng)建了一個按鈕,大多數(shù)情況下這都能正常運行,除非事件處理器不按照按鈕所示的進行操作。如果你打算服務(wù)多個控件類型,那么每個控件類型都需要一個獨特的處理。你可以使用多事件處理器或者為某些類型提供選擇標準。

NewLink_Click()事件處理器照常將傳入發(fā)送器轉(zhuǎn)換成指定類型,在這個示例中則是LinkLabel.該代碼可以訪問LinkLabel屬性并能用其他方式進行互動。在我們的示例中,只顯示了一個能在創(chuàng)建鏈接的時候告知我們的對話框。


分享名稱:詳細介紹VB.NET動態(tài)控件
分享網(wǎng)址:http://www.5511xx.com/article/ccdjdeo.html