成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細(xì)介紹VB.NET動(dòng)態(tài)控件

開(kāi)發(fā) 后端
這里介紹VB.NET動(dòng)態(tài)控件,我們所展示的例子中程序員向FlowLayoutPanel中添加了LinkLabels.或許你可以個(gè)這樣的設(shè)置來(lái)記錄和保存常用的URL,文件,網(wǎng)絡(luò)地址或是其他資源所在位置的數(shù)值。

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

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

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

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

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

每次當(dāng)用戶點(diǎn)擊Test按鈕時(shí),示例代碼就會(huì)動(dòng)態(tài)創(chuàng)建一個(gè)新的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 

如你所料,該代碼開(kāi)始的時(shí)候創(chuàng)建了一個(gè)新的LinkLabel并為其賦予了一些值。這一示例使用的是當(dāng)前時(shí)間。你的代碼或許能夠?qū)δ骋徽鎸?shí)資源進(jìn)行訪問(wèn)。

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

  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)注意到例一中的事件處理器使用的是寬松代表——它沒(méi)有將ByVal發(fā)送器作為System.Object,也沒(méi)有將ByVal e作為System.EventArgs作為參數(shù)因?yàn)樗恍枰@二者。然而,當(dāng)你創(chuàng)建一個(gè)事件處理器來(lái)創(chuàng)建VB.NET動(dòng)態(tài)控件時(shí),通常你需要將ByVal發(fā)送器作為 System.Object參數(shù),這意味著將這兩者都包含其中。

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

  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)建了一個(gè)按鈕,大多數(shù)情況下這都能正常運(yùn)行,除非事件處理器不按照按鈕所示的進(jìn)行操作。如果你打算服務(wù)多個(gè)控件類型,那么每個(gè)控件類型都需要一個(gè)獨(dú)特的處理。你可以使用多事件處理器或者為某些類型提供選擇標(biāo)準(zhǔn)。

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

【編輯推薦】

  1. 淺談VB.NET線程構(gòu)造器
  2. 簡(jiǎn)單分析VB.NET使用線程
  3. VB.NET List(T)編寫(xiě)框架方法
  4. 簡(jiǎn)單介紹VB.NET線程同步
  5. VB.NET聲明API詳細(xì)描述
責(zé)任編輯:佚名 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-10-28 09:55:29

VB.NET MyCl

2009-10-10 16:44:52

VB.NET開(kāi)發(fā)控件

2009-11-10 12:42:47

VB.NET Prin

2010-01-21 16:45:00

VB.NET繼承規(guī)則

2010-01-12 15:54:47

VB.NET動(dòng)態(tài)控件數(shù)

2010-01-19 10:03:35

VB.NET Labe

2010-01-08 13:35:35

VB.NET寫(xiě)Log方

2009-10-28 17:32:25

VB.NET控件介紹

2010-01-19 12:53:59

VB.NET Text

2010-01-08 09:43:21

VB.NET漢字轉(zhuǎn)換

2009-11-10 12:48:17

VB.NET三維模型

2010-01-08 15:03:12

VB.NET類屬性

2009-10-12 15:41:09

VB.NET動(dòng)態(tài)代碼

2010-01-13 10:53:24

VB.NET控件

2009-10-23 13:14:38

2009-10-14 10:19:57

VB.NET Doma

2009-10-20 10:16:24

VB.NET COMB

2009-10-14 16:04:43

VB.NET Noti

2010-01-08 14:14:27

VB.NET使用Fin

2009-10-27 10:30:18

VB.NET實(shí)現(xiàn)動(dòng)態(tài)菜
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产欧美一区二区三区在线看蜜臀 | 国产日韩欧美一区 | 久久久久久一区 | 日日噜噜噜夜夜爽爽狠狠视频, | 91电影院 | av黄色在线| 国产欧美视频一区二区三区 | 国产精品伦一区二区三级视频 | 欧美一级在线免费观看 | 亚洲一区二区在线视频 | 久久成人免费 | 亚洲欧洲成人av每日更新 | 中文字幕高清免费日韩视频在线 | 羞羞色影院 | 免费黄色在线 | 美日韩精品 | 久久av一区二区三区 | 久久国产一区二区 | 99这里只有精品视频 | 一级做a爰片性色毛片 | 国产精品视频 | 日韩免费一区二区 | 成人精品一区二区户外勾搭野战 | 欧美一级二级视频 | 中文字幕影院 | 91在线播| 亚洲看片网站 | 日韩精品一区二区三区 | 一区二视频 | av永久免费 | 在线免费毛片 | 91精品久久久久久久久中文字幕 | 黑人巨大精品 | 午夜欧美一区二区三区在线播放 | 91观看| 亚洲精品在线免费播放 | 91中文| av一区二区三区在线观看 | 久久999| 91热爆在线观看 | 亚洲综合色视频在线观看 |