成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb.net集合排序 vbnet數(shù)組排序方法

vb.net 排列組合 代碼

第一題:

張家川回族自治網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),張家川回族自治網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為張家川回族自治上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的張家川回族自治做網(wǎng)站的公司定做!

不需要任何控件,代碼如下:

Private Sub Form_Click()

Dim A() As Integer, N As Integer

Dim St As String, I As Integer, J As Integer

Randomize

Do

St = InputBox("數(shù)字的個數(shù)", "輸入", Int(Rnd * 100))

If St = "" Then

MsgBox "請輸入數(shù)字!"

Else

N = Int(Val(St))

If N 1 Then

MsgBox "請輸入大于0的數(shù)字!"

Else

Exit Do

End If

End If

Loop

ReDim A(N)

For I = 1 To N

Do

St = InputBox("第" + Str(I) + "個數(shù)字", "輸入", Int(Rnd * 100))

If St = "" Then

MsgBox "請輸入數(shù)字!"

Else

A(I) = Int(Val(St))

Exit Do

End If

Loop

Next

For I = 1 To N - 1

For J = I + 1 To N

If A(I) A(J) Then

A(0) = A(I)

A(I) = A(J)

A(J) = A(0)

End If

Next

Next

For I = 1 To N

Open App.Path "\" Trim(Str(I)) ".txt" For Output As #1

Print #1, A(I)

Close #1

Next

Print "已經(jīng)把"; N; "個數(shù)寫入到"; App.Path; "\1.txt 到 "; N; ".txt中.請查看."

End Sub

'已經(jīng)運行過.

第二題:

DIM 是變量聲明語句,它的格式為:

dim 變量名[as 格式] [,變量名[as 格式][,變量名[as 格式]......]

其中:

變量名:以字母或漢字開始的字串,代表一個變量

格式有以下幾種:

屬于數(shù)字的有五種:

(1)字節(jié)型:byte可取值0-255

(2)整形:integer可取值-32768至32767

(3)長整形:long(可取值范圍很大的正負整數(shù))

(4)單精度型:single(可取值小數(shù))

(5)雙精度型:double(可取值范圍更大,小數(shù)位數(shù)更多的小數(shù))

字符串型:string(可代表由字母\數(shù)字或漢字組成的字符集合)

布爾型:boolean(取值為ture\false)

日期型:date(可表示形如2009-5-26 02:36這樣的組合)

如果要用姓名\住址\單位名稱...等用字符串型(string)

eg:dim name as string(用name變量表示名字時,聲明成字符串變量)

如果是用數(shù)字需要做計算,如工資\合計\人數(shù)....等要用數(shù)字型,但有一個原則,優(yōu)先選用范圍小的(按照字節(jié)型(byte)\整形(integer)\長整形(long)\單精度型(single)\雙精度型(double)的順序選擇),夠用就可以了,這樣可以占用內(nèi)存少,運算速度快.

eg:dim count as integer(用integer表示員工人數(shù)時,可聲明成整形變量)

eg:dim sum as single(用sum表示工資時,可聲明成單精度型變量)

不知是否說得清楚了.

vb.net入門——DomainUpDown 控件的使用

DomainUpDown 控件在外觀上都是由一個文本框和一對可以上下移動列表的箭頭組成 如下圖一所示

圖一 控件外觀

其功能類似于組合框 您可以將任何類型的數(shù)據(jù)放入列表 同時在文本框中顯示單個字符串值 讓用戶可以通過單擊上箭頭和下箭頭來瀏覽數(shù)據(jù)

在工具箱中 它的圖標顯示如下圖二所示

圖二 工具箱中的DomainUpDown 控件

DomainUpDown 控件的主要屬性為 Items ReadOnly Wrap

一 改變文字顯示與上下箭頭的方向

我們可以通過 TextAlign 屬性來改變控件中的文本對齊方式 通過 UpDownAlign 屬性改變它的上下按鈕對齊方式

示例 在DomainUpDown 控件 Text 屬性中輸入 即文本框顯示的字符 把 TextAlign 屬性 設(shè)置為Center UpDownAlign 屬性設(shè)置為Left 顯示效果如下圖三所示

圖三 改變DomainUpDown 控件顯示外觀

二 ReadOnly 屬性

ReadOnly 屬性用于設(shè)置用戶是否只能使用向上或向下按鈕更改文本 默認值為False 如果為False 則用戶可以在文本框中進行輸入 如果為True 則文本輸入框變?yōu)榛疑?用戶只能通過Up Down按鈕來選擇列表 且當用戶使用鍵盤鍵入的時候 控件自動完成匹配 如假設(shè)列表中存在下面三個字符串的項 aa b 控件ReadOnly 屬性為True 則當我們在文本框中鍵入 時候 控件將自動匹配字符串 如下圖四所示

圖四 DomainUpDown 自動匹配用戶輸入

三 為DomainUpDown 控件添加\刪除列表項

通過 字符串集合編輯器 編輯

我們可以在設(shè)計視圖中為 DomainUpDown 控件添加或者刪除列表項 步驟如下

在 屬性 窗口中找到 Items 屬性 單擊屬性后的 按鈕 彈出 字符串集合編輯器 然后進行編輯 注意每行為一個項

使用代碼添加\刪除

可以使用 Items 集合的 Add 方法將項添加到項列表的末尾 使用 Insert 方法將項插入到列表中的指定位置

可以使用 Items 集合的 Remove 方法按照名稱移除項 使用 RemoveAt 方法按照項的位置移除項

示例代碼如下

在控件列表尾部添加一個字符串 cccc

DomainUpDown Items Add( cccc )

把字符串 cccc 插入到索引位置 (提示 索引是從 開始)

DomainUpDown Items Insert( cccc )

刪除列表中的字符串為 cccc 的項

DomainUpDown Items Remove( cccc )

刪除列表中索引位置為 的項

DomainUpDown Items RemoveAt( )

使用Clear方法清除DomainUpDown 控件的所有項

DomainUpDown Items Clear()

四 DomainUpDown 控件的其它屬性

Sorted 屬性 指示項集合是否排序 當 Sorted 設(shè)置為 true 時 將按字母順序?qū)吓判?默認為False

Wrap 屬性 當 Wrap 設(shè)置為 true 時 如果達到了集合中的最后一項并繼續(xù)滾動 則列表將從第一項重新開始 看起來像是連續(xù)的

lishixinzhi/Article/program/net/201311/11362

vb.net dataview 的用法

定制數(shù)據(jù)視圖

DataView類用來表示定制的DataTable的視圖。DataTable和DataView的關(guān)系是遵循著名的設(shè)計模式--文檔/視圖模式,其中DataTable是文檔,而Dataview是視圖。

在任何時候,你都可以有多個基于相同數(shù)據(jù)的不同的視圖。更重要的是,你可以對每一個具有自己一套屬性、方法、事件的視圖作為獨立的對象進行處理。這也代表了相對ADO一個巨大的飛躍。

創(chuàng)建DataView

public DataView();

public DataView(DataTable);

DataView只有同已經(jīng)存在的、很可能是非空的DataTable對象連接后才可用。通常,這個連接在構(gòu)造時就指定了。

DataView dv;

dv = new DataView(theDataSet.Tables["Employees"]);

但是,你也可以先創(chuàng)建一個新的視圖,然后再用Table屬性同表相關(guān)聯(lián)。

DataView dv = new DataView();

dv.Table = theDataSet.Tables["Employees"];

DataView構(gòu)造函數(shù)使你由DataTable中得到一個DataView對象。如果需要,反之亦可。事實上,DataTable對象的DefaultView屬性返回一個該表的DataView對象。

DataView dv = dt.DefaultView;

一旦你有了DataView對象, 你可以利用它的屬性來建立你希望用戶見到的數(shù)據(jù)行集。一般,你可以使用下列屬性:

RowFilter

Sort

前者可以定制視圖中可見數(shù)據(jù)應(yīng)匹配的規(guī)則。而后者通過表達式來進行排序。當然你可以使用這兩者的任意組合。

設(shè)置過濾 RowFilter是一個可讀寫的屬性,用來讀取和設(shè)置表過濾的表達式。

public virtual string RowFilter {get; set;}

你可以用列名,邏輯和數(shù)字運算符和常量的任意合法組合組成表達式。以下是一些例子:

dv.RowFilter = "Country = 'USA'";

dv.RowFilter = "EmployeeID 5 AND Birthdate #1/31/82#"

dv.RowFilter = "Description LIKE '*product*'"

讓我們來看一下過濾器的基本規(guī)則和運算符。

過濾字符串是表達式的邏輯連接。可以用AND,OR,NOT來連接成一個較短的表達式,也可以使用圓括號來組成子句,指定優(yōu)先的運算。

通常包含列名的子句同字母、數(shù)字、日期或另一個列名進行比較。這里,可以使用關(guān)系運算符和算術(shù)運算符,如=, , , +, *, % (取模)等等。

如果要選取的行并不能方便地通過算術(shù)或邏輯運算符表達,你可以使用IN操作符。以下代碼顯示如何選取一個隨機行:

dv.RowFilter = "employeeID IN (2,4,5)"

你也可以使用通配符*和%,它們同LIKE運算符一起使用時顯得更有用。它們都表示任意數(shù)量的字符,可以相互替代使用。

請注意,如果在LIKE子句中已經(jīng)有了*或%字符,你必須用方括號將其括起,以免歧義。如果很不幸,字符串中方括號本身也存在了,那么它也必須用將本身括起。這樣,匹配語句會如下所示:

dv.RowFilter = "Description LIKE '[[]*[]]product[[]*[]]"

通配符只允許在過濾字符串的開頭或結(jié)尾處使用,而不能在字符串中間出現(xiàn)。例如,下列語句會產(chǎn)生運行時錯誤:

dv.RowFilter = "Description LIKE 'prod*ct"

字符串必須以單引號括起,而日期型必須以#符號括起。字符型值可以使用小數(shù)點和科學計數(shù)法。

RowFilter也支持聚合函數(shù),如SUM, COUNT, MIN,MAX, and AVG。如果表中沒有數(shù)據(jù)行,那么函數(shù)將返回NULL。

在介紹RowFilter表達式的最后,讓我們討論三個很便利的函數(shù):Len,IIF和Substring。

正如其名,Len()返回特定表達式的長度。該表達式可以是一個列名,也可以是其他合法的表達式。

Substring()返回指定的表達式自特定位置開始,特定長度的字符子串。

我最喜歡用的是IIF(),它按照邏輯表達式的值有一到兩個值。IIF是IF-THEN-ELSE語句的緊湊表達。語法如下:

IIF(expression, if_true, if_false)

通 過該函數(shù),可以建立非常復雜的過濾字符串。例如,假定你從SQL Server的Northwind數(shù)據(jù)庫中取得Employees表,下列表達式可以選出那些employeeID小于6且lastname為偶數(shù)個字符 和employeeID大于6且lastname為奇數(shù)個字符的員工。

IIF(employeeID6, Len(lastname) %2 =0, Len(lastname) %2 0)

預排視圖

在上面的舉例中,datagrid必須負責預排視圖中的數(shù)據(jù)行,以便刷新用戶界面。這個自動機制是.NET

數(shù)據(jù)綁定的產(chǎn)物。Datagrid是通過DataSource屬性來獲取數(shù)據(jù)的數(shù)據(jù)綁定控件。DataView是一個可數(shù)據(jù)綁定的類,可構(gòu)建DataSource屬性的內(nèi)容。

如果你想使用datagrid之外的另一個控件,應(yīng)該怎么辦呢?又如果你不想使用自動數(shù)據(jù)綁定呢?應(yīng)該怎樣預排視圖中所選的數(shù)據(jù)行呢?

DataView的Table屬性指向相應(yīng)的數(shù)據(jù)表,但DataTable并不保存過濾信息。所以,預排表中的數(shù)據(jù)注定是不可行的。雖然DataTable和DataView是緊密相聯(lián)的,但它們各自保持獨立,并執(zhí)行獨立的功能。

以下Visual Basic .NET代碼段顯示了如何遍歷視圖中所有的數(shù)據(jù)行,并加入到listbox中。

Dim dv As New DataView()

dv = ds.Tables("Employees").DefaultView

dv.RowFilter = "employeeid 5"

ListBox1.Items.Clear()

Dim buf As String

Dim dr As DataRowView

For Each dr In dv

buf = ""

buf = dr("lastname").ToString() ", " dr("firstName").ToString()

ListBox1.Items.Add(buf)

Next

正如前面說提到的,DataView是可枚舉的類,因此你可以安全的將它傳給For..Each語句。Count屬性存儲了視圖中數(shù)據(jù)行數(shù),以便在For..Next循環(huán)中使用。

要訪問視圖中某一行,可以使用DataRowView類。DataRowView可表示DataRow的視圖,就像DataView表達DataTable定制的視圖一樣。

總的來說,DataRow最多有四種狀態(tài):default,original,current和proposed。這些狀態(tài)由DataRowVersion枚舉類型設(shè)置,由RowVersion屬性表達。

DataRow的視圖只能是其中某一種狀態(tài)。

數(shù)據(jù)行的默認(default)版本只有當其列在構(gòu)造時設(shè)定了默認值時才有。而初始(original)版本是指在最后一次調(diào)用表的AcceptChanges后,從數(shù)劇源中得到數(shù)據(jù)行或快照。當前(Current)版本是指當前的數(shù)據(jù)行,包括所有當時發(fā)生的更新。Proposed狀態(tài)只存在于調(diào)用BeginEdit和EndEdit的編輯過程中。

可以通過訪問DataRow相同的語法訪問DataRowView。這里最重要的屬性叫Item。

排序和其他便捷的特性

DataView支持Sort屬性,可以用來對視圖中的內(nèi)容排序。Sort由用逗號分隔的列名表達式進行排序。通過在任何列名后加ASC或者DESC限定詞,可以使得字段按照上升或者下降的順序排列。如果沒有方向限定詞,默認順序為ASC。

DataView是內(nèi)存中的對象,所以排序在本地進行,無需調(diào)用數(shù)據(jù)庫服務(wù)器。

RowStateFilter是DataView另一有趣的屬性。它可以用任何預定義的標準來過濾DataTable中的內(nèi)容。下表中是DataViewRowState枚舉類型的所有取值:

CurrentRows包括所有未更新的、新的和修改的數(shù)據(jù)行Deleted所有自上次調(diào)用AcceptChanges后刪除的數(shù)據(jù)行ModifiedCurrent所有自上次調(diào)用AcceptChanges后修改過的數(shù)據(jù)行ModifiedOriginal所有自上次調(diào)用AcceptChanges后original版本的數(shù)據(jù)行New所有自上次調(diào)用AcceptChanges后新添加的行OriginalRows返回初始數(shù)據(jù)行,包含unchanged和deleted 的Unchanged所有未更新的數(shù)據(jù)行

如果要操作非連接的數(shù)據(jù),所有更新都在對DataTable調(diào)用AcceptChanges后生效。對單一行的更新在調(diào)用DataRow的AcceptChanges后生效。類似的,這些更新可以通過調(diào)用DataTable或DataRow對象的RejectChanges來取消。

DataView對象還有一些屬性,如AllowEdit,AllowDelete和AllowNew,用來得到或設(shè)定是否允許更新的值。它們的默認值設(shè)為True,允許任何種類的更新。如果在標志設(shè)為False時,你想要完成相應(yīng)的更新操作,會有一個運行時錯誤發(fā)生。

DataViewManager類

DataTable對象的DefaultView屬性用來返回一個DataView對象,作為數(shù)據(jù)表中內(nèi)容的默認視圖。它按照自然順序讀取數(shù)據(jù)并顯示表中所有的行,而不使用任何過濾。

theMasterGrid.DataSource = m_ds.Tables("Employees").DefaultView

如果需要數(shù)據(jù)特定的視圖,你可以進行排序并/或?qū)efaultView對象直接進行過濾。

m_ds.Tables("Employees").DefaultView.Sort = "lastname"

theMasterGrid.DataSource = m_ds.Tables("Employees").DefaultView

DataViewManager類是用來存儲DataSet中所有表的視圖設(shè)置。

可以通過傳遞一個合法的非空的DataSet給類的構(gòu)造函數(shù)來創(chuàng)建DataViewManager

Dim dvm As DataViewManager

dvm = New DataViewManager(m_ds)

也可以通過DataSet對象的DefaultViewManager屬性直接得到:

Dim dvm As DataViewManager = m_ds.DefaultViewManager

重要的是DataViewManager類是同一個DataSet相關(guān)聯(lián)的。下面是另一種可行的方法:

Dim dvm As New DataViewManager()

dvm.DataSet = m_ds

DataViewManager最重要的屬性是DataViewSettings,一個DataViewSetting對象的集合。

Dim dvs As DataViewSetting

dvs = dvm.DataViewSettings("Employees")

dvs.Sort = "lastname"

DataViewSetting對象包含了表視圖的參數(shù)信息。當將數(shù)據(jù)綁定到對數(shù)據(jù)敏感的控件時,使用DataViewManager而不是DataSet或DataTable可以保留你的視圖設(shè)置(過濾和排序字段)

theMasterGrid.DataSource = dvm

theMasterGrid.DataMember = "Employees"

在這里,視圖按照DataViewSetting中對Employees表指定的自動進行排序和過濾。換而言之,DataViewSetting類是對特定表的視圖的一種緩存。

VB.NET中treeview的使用

Nodes 集合包含分配給 TreeView 控件的所有 TreeNode 對象。此集合中的樹節(jié)點稱作根樹節(jié)點。隨后添加到根樹節(jié)點上的任何樹節(jié)點稱作子節(jié)點。由于每個 TreeNode 都可以包含其他 TreeNode 對象的集合,您可能會在循環(huán)訪問集合時覺得很難確定自己在樹結(jié)構(gòu)中的位置。您可以使用 PathSeparator 字符串值來分析 TreeNode.FullPath 字符串,以確定 TreeNode 標簽的起始和終止位置。

可以在樹節(jié)點旁顯示圖像,方法是將一個 ImageList 分配給 ImageList 屬性,然后通過引用 Image 在 ImageList 中的索引值來分配該 Image。使用下面的屬性分配圖像:

將 ImageIndex 屬性設(shè)置為當樹節(jié)點未選定時所顯示的 Image 的索引值。

將 SelectedImageIndex 屬性設(shè)置為當樹節(jié)點被選定時要顯示的 Image 的索引值。

ImageIndex 和 SelectedImageIndex 屬性值所引用的圖像是所有分配給 Nodes 集合的樹節(jié)點顯示的默認圖像。每個樹節(jié)點都可以通過設(shè)置 TreeNode.ImageIndex 和 TreeNode.SelectedImageIndex 屬性來取代默認的圖像。

樹節(jié)點可以展開,以顯示下一級子樹節(jié)點。用戶可以在 TreeNode 旁顯示加號 (+) 按鈕時通過單擊加號 (+) 按鈕來展開 TreeNode,或者可以通過調(diào)用 TreeNode.Expand 方法來展開 TreeNode。若要展開 Nodes 集合中的所有子樹節(jié)點級別,請調(diào)用 ExpandAll 方法。若要折疊子 TreeNode 級別,可以調(diào)用 TreeNode.Collapse 方法,也可以在 TreeNode 旁顯示減號 (-) 按鈕時按減號 (-) 按鈕。還可以通過調(diào)用 TreeNode.Toggle 方法在展開和折疊狀態(tài)之間切換。

樹節(jié)點可以選擇性地顯示復選框。若要顯示復選框,請將 TreeView 的 CheckBoxes 屬性設(shè)置為 true。對于處于選中狀態(tài)的樹節(jié)點,Checked 屬性設(shè)置為 true。

注意

從 BeforeCheck 或 AfterCheck 事件內(nèi)設(shè)置 TreeNode.Checked 屬性將導致該事件被多次引發(fā)并可能產(chǎn)生意外行為。例如,您可以在遞歸更新子節(jié)點時在事件處理程序中設(shè)置 Checked 屬性,以便用戶不必逐個展開并選中每個節(jié)點。如果未將 TreeViewEventArgs 的 Action 屬性設(shè)置為 TreeViewAction.Unknown,則若要防止該事件被多次引發(fā),需為僅執(zhí)行遞歸代碼的事件處理程序添加邏輯。有關(guān)如何進行此操作的示例,請參見 AfterCheck 或 BeforeCheck 事件的示例部分。

通過設(shè)置 TreeView 控件的一些顯示和樣式屬性,可以更改此控件的外觀。如果將 ShowPlusMinus 設(shè)置為 true,則會分別在每個可展開或折疊的 TreeNode 旁顯示加號或減號按鈕。如果將 ShowRootLines 屬性設(shè)置為 true,TreeView 則會顯示聯(lián)接所有根樹節(jié)點之間的連線。通過將 ShowLines 屬性設(shè)置為 true,可以顯示子樹節(jié)點與其根節(jié)點之間的連線。如果將 HotTracking 屬性設(shè)置為 true,那么當鼠標指針移過樹節(jié)點標簽時,樹節(jié)點標簽的外觀將發(fā)生變化。如果啟用熱跟蹤,樹節(jié)點標簽將具有超鏈接的外觀。也可以完全自定義 TreeView 控件的外觀。若要執(zhí)行此操作,請將 DrawMode 屬性設(shè)置為 TreeViewDrawMode.Normal 以外的值并處理 DrawNode 事件。

注意

在運行時設(shè)置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 屬性時,將重新創(chuàng)建 TreeView 句柄(請參見 Control.RecreateHandle)以更新控件的外觀。這將折疊除選定的 TreeNode 之外的所有樹節(jié)點。

下面的代碼示例闡釋了如何使用 TreeView 控件。

Private Sub InitializeTreeView()

treeView1.BeginUpdate()

treeView1.Nodes.Add("Parent")

treeView1.Nodes(0).Nodes.Add("Child 1")

treeView1.Nodes(0).Nodes.Add("Child 2")

treeView1.Nodes(0).Nodes(1).Nodes.Add("Grandchild")

treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Great Grandchild")

treeView1.EndUpdate()

End Sub

From MSDN

VB.net 如何查詢某值在DataSet的哪一行哪一列?

行列循環(huán)查詢就可以了阿

假如?DataSet1是你的?DataSet,見下面的代碼

Dim?db?As?DataTable?=?DataSet1.Tables("表名")

Dim?c?As?Integer?=?db.Columns.Count?-?1

Dim?r?As?Integer?=?db.Rows.Count?-?1

For?i?=?0?To?r

For?j?=?0?To?c

If?db.Rows(r).Item(i)?=?"A"?Then

MsgBox("行是:"??i??"列是:"??j)

End?If

Next

Next

VB.NET ListView1控件添加數(shù)據(jù)

要使用ListView控件,需要加入組件:

Microsoft Windows Common Controls 6.0

Windows資源管理器的右半部分,就是一個ListView控件。

作用

列出并列關(guān)系的對象及對象屬性。

ListView控件的對象層次結(jié)構(gòu)

ListView -整個控件

ColumnHeaders -標題行

ColumnHeader -標題列

ListItems -對象行集合

ListItem -對象行

ListSubItems -對象屬性集合

ListSubItem -對象屬性

注意:SubItems和ListSubItems的區(qū)別:SubItems是一個String數(shù)組;ListSubItems是一個集合。

屬性

View:設(shè)置ListView的外觀

Sorted:設(shè)置ListView中的對象集合是否排序。

SortKey:設(shè)置以第幾項排序。從零開始。

SelectedItem:返回選中的對象的引用。

事件

AfterLabelEdit:編輯ListItem對象的標簽時被觸發(fā)。

BeforeLabelEdit:編輯ListItem對象的標簽后出發(fā)。

ColumnClick:單擊列標題時觸發(fā)。參數(shù)中可以獲得被單擊的列對象。通常用于排序。

ItemClick:單擊某行或某ListItem時觸發(fā)。參數(shù)中可以獲得被單擊的ListItem對象。

方法

FindItem:搜索ListItem對象。

參數(shù):

string:搜索字符串。

value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:開始搜索的位置。

match:匹配方式。

HitTest:檢索位于特定坐標處的ListItem對象。

ListView控件比前面幾種控件要復雜一些,通過此控件,可將項目組成帶有或不帶有列標頭的列,并顯示伴隨的圖標和文本。ListView控件是由ColumnHeader和ListItem對象所組成的,其中ColumnHeader對象的個數(shù)決定了控件的列數(shù),而ListItem對象的個數(shù)則決定了控件的行數(shù)。(圖7)

ColumnHeader對象是ListView控件中包含標頭文字的項目。利用ColumnHeader對象,用戶可以:

▲單擊對象觸發(fā)ColumnClick事件并根據(jù)數(shù)據(jù)項目將項目排序。

▲拖動對象的右邊框來調(diào)整列寬度。

▲在報表視圖中隱藏ColumnHeader對象。

ColumnHeader對象的數(shù)目決定每個ListItem對象可包含的子項目數(shù)目。刪除ColumnHeader對象后所有與列關(guān)聯(lián)的子項目也將被刪除,并且每個ListItem對象的子項目數(shù)組將平移以更新ColumnHeader的索引,而這將導致剩余的列標頭SubItemIndex屬性的改變。

ColumnHeader對象的SubItemIndex屬性

該屬性返回與ListView控件中ColumnHeader對象關(guān)聯(lián)的子項目的索引。子項目是字符串數(shù)組,代表顯示在報表視圖中的ListItem對象的數(shù)據(jù)。第一列的列標頭SubItemIndex屬性設(shè)置為0,這是因為小圖標和ListItem對象的文字總出現(xiàn)在第一列中,而且它們被當作ListItem對象而不是子項目。列標頭數(shù)目取決于子項目數(shù)目。列標頭數(shù)目總是比子項目數(shù)目多1。

在設(shè)計時可以利用屬性頁的“列首”選項卡將ColumnHeader對象添加到ListView控件中,在運行時則用Add方法添加。

ColumnHeader對象的Add方法

該方法的使用與前面那些控件基本相似,就不再介紹了。

ListView1.ColumnHeader.Add(index,key,text,width,alignment)

ListItem對象是指控件中的一行(不包含標頭行)的所有內(nèi)容。它也可包含文本和圖片,但是要使用圖片則必須通過Icons和SmallIcons屬性引用ImageList控件。

ListItem對象的SubItems屬性

返回或設(shè)置一個字符串(子項目)數(shù)組,它代表ListView控件中ListItem對象的數(shù)據(jù)。

ListItem對象可包含任意多個的關(guān)聯(lián)項目數(shù)據(jù)字符串(子項目),但每個ListItem對象子項目數(shù)目必須相同。每個子項目都對應(yīng)于相關(guān)的列標頭,無法直接向子項目數(shù)組添加元素,只有通過ColumnHeaders的Add方法添加列標頭的方法來添加子項目。

ListItem對象的Add方法

該方法添加ListItem對象到ListView控件的ListItems集合中并返回對新創(chuàng)建對象的引用。

它的語法如下:

ListItem1.Add(index,key,text,icon,smallIcon)

ListView控件的View屬性

ListView控件可使用四種不同視圖顯示項目,這可以用View屬性來確定。該屬性返回或設(shè)置ListView控件中ListItem對象的外觀。

ListView控件的SortOrder,SortKey和Sorted屬性

控件中的ListItem對象可以按要求進行排序,與排序有關(guān)的屬性是SortOrder,Sorted和SortKey屬性。

SortOrder屬性返回或設(shè)置一個值,此值決定ListView控件中的ListItem對象以升序或降序排序。

SortKey屬性返回或設(shè)置一個值,此值決定ListView控件中的ListItem對象如何排序。

Sorted屬性返回或設(shè)置確定ListView控件中的ListItem對象是否排序的值。

下面的代碼說明了如何創(chuàng)建ColumnHeaders和ListItem對象,SubItemIndex和SubItem屬性的使用方法以及如何排序。

Private Sub Form_load()

'確保ListView控件的view屬性為報表視圖。

ListView1.View=lvwReport

'添加三列。

ListView1.ColumnHeaders.Add,"Name","姓名"

ListView1.ColumnHeaders.Add,"Sex","性別"

ListView1.ColumnHeaders.Add,"Age","年齡"

'向控件添加ListItem對象。

Dim itmX As ListItem

'添加column1的名稱。

Set itmX=ListView1.ListItems.Add(1,"ZL","張力")

'使用SubItemIndex將SubItem與正確的ColumnHeader關(guān)聯(lián)。使用關(guān)鍵字("Sex")指定正確的ColumnHeader。

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

'使用ColumnHeader關(guān)鍵字將SubItems字符串與

'正確的ColumnHeader關(guān)聯(lián)。

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"

Set itmX=ListView1.ListItems.Add(1,"LF","李芳")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22"

Set itmX=ListView1.ListItems.Add(1,"WW","王偉")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24"

End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ComctlLib.ColumnHeader)

Select Case ColumnHeader.Key

Case "Sex":ListView1.SortKey=1

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

Case "Age":ListView1.SortKey=2

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

End Select

End Sub

分享名稱:vb.net集合排序 vbnet數(shù)組排序方法
分享路徑:http://jinyejixie.com/article28/dodhcjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司云服務(wù)器、微信小程序、虛擬主機、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
桦甸市| 苏尼特右旗| 石柱| 淄博市| 定西市| 清远市| 清涧县| 靖江市| 怀宁县| 北辰区| 乌拉特中旗| 奉贤区| 观塘区| 清涧县| 新郑市| 唐海县| 周至县| 淄博市| 谢通门县| 德昌县| 岳阳市| 福建省| 凤山市| 泰安市| 通河县| 红安县| 松潘县| 深水埗区| 九台市| 泉州市| 阿拉善盟| 穆棱市| 平潭县| 济宁市| 韶关市| 梨树县| 昆山市| 林西县| 巴林右旗| 多伦县| 勃利县|