十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在中 TreeView(樹型結(jié)構(gòu))控件是顯示節(jié)點(diǎn)(Node)對象的級層結(jié)構(gòu) 它通常用于顯示一些有等級結(jié)構(gòu)的信息 我們最為熟悉的就是Windows資源管理器左邊顯示文件和文件夾的窗口 在工具箱中 TreeView 控件的圖標(biāo)如下圖一所示
站在用戶的角度思考問題,與客戶深入溝通,找到托里網(wǎng)站設(shè)計(jì)與托里網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋托里地區(qū)。
TreeView控件的每個節(jié)點(diǎn)(Node對象)包含了一個標(biāo)簽和可選的點(diǎn)位圖 每個節(jié)點(diǎn)又可能包含有若干個的子節(jié)點(diǎn) 可以通過控制某個節(jié)點(diǎn)來展開顯示或者折疊隱藏它所包含的子節(jié)點(diǎn)
一 TreeView 控件的一些常用屬性
CheckBoxes 屬性 指示是否在樹視圖控件中的樹節(jié)點(diǎn)旁顯示復(fù)選框
FullRowSelect 屬性 當(dāng) FullRowSelect 為 true 時 選擇突出顯示將跨越樹視圖的整個寬度 即整個顯示區(qū)域的寬度而不僅僅是樹節(jié)點(diǎn)標(biāo)簽的寬度 如果 ShowLines 設(shè)置為 true 則將忽略 FullRowSelect 屬性
HideSelection 屬性 指示選定的樹節(jié)點(diǎn)是否即使在樹視圖已失去焦點(diǎn)時仍會保持突出顯示
HotTracking 屬性 如果 HotTracking 屬性設(shè)置為 true 那么當(dāng)鼠標(biāo)指針移過每個樹節(jié)點(diǎn)標(biāo)簽時 樹節(jié)點(diǎn)標(biāo)簽都將具有超級鏈接的外觀 Underline 字體樣式將應(yīng)用于 Font 而 ForeColor 將設(shè)置為藍(lán)色 從而使標(biāo)簽顯示為鏈接 注意 如果 CheckBoxes 屬性設(shè)置為 true HotTracking 屬性將失效
Indent 屬性 設(shè)置每個子樹節(jié)點(diǎn)級別的縮進(jìn)距離(以像素為單位)
ItemHeight 屬性 設(shè)置樹視圖控件中每個樹節(jié)點(diǎn)的高度
Nodes 屬性 獲取分配給樹視圖控件的樹節(jié)點(diǎn)集合 這個屬性是TreeView 控件最重要的屬性之一 我們下文將會對它進(jìn)行更加的詳細(xì)的說明
PathSeparator 屬性 樹節(jié)點(diǎn)路徑(TreeNode FullPath 屬性)所使用的分隔符串 默認(rèn)為反斜杠字符 (\) 樹節(jié)點(diǎn)路徑包括一組由 PathSeparator 分隔符串分隔的樹節(jié)點(diǎn)標(biāo)簽 標(biāo)簽的范圍為根樹節(jié)點(diǎn)到所需的樹節(jié)點(diǎn) 如下代碼我們可以獲得當(dāng)前選中的節(jié)點(diǎn)的路徑
MessageBox Show(TreeView SelectedNode FullPath)
SelectedNode 屬性 獲取或設(shè)置當(dāng)前在樹視圖控件中選定的樹節(jié)點(diǎn) 如果沒有選定任何節(jié)點(diǎn) 則 SelectedNode 屬性則為Nothing
ShowLines 屬性 指示是否在樹視圖控件中的樹節(jié)點(diǎn)之間繪制連線
ShowPlusMinus 屬性 指示是否在包含子樹節(jié)點(diǎn)的樹節(jié)點(diǎn)旁顯示加號 (+) 和減號 ( ) 按鈕
ShowRootLines 屬性 指示是否在樹視圖根處的樹節(jié)點(diǎn)之間繪制連線
如下圖二所示 為ShowLines 屬性 ShowPlusMinus 屬性 ShowRootLines 屬性都設(shè)置為True的情形
二 為TreeView 控件添加節(jié)點(diǎn)
TreeView 控件的 Nodes 屬性包含了它所有的節(jié)點(diǎn) 下面我們就來了解如何為樹狀控件添加節(jié)點(diǎn)
通過樹節(jié)點(diǎn)編輯器添加
選中TreeView 控件 在它的屬性對話框中找到Nodes 屬性 然后單擊它后面的省略號 彈出 樹節(jié)點(diǎn)編輯器 如下圖三所示
然后通過編輯器上的 添加根 來添加根節(jié)點(diǎn) 通過 添加子級 來為選中的節(jié)點(diǎn)添加子節(jié)點(diǎn) 通過 刪除 來刪除選定的節(jié)點(diǎn) 標(biāo)簽 輸入框確定節(jié)點(diǎn)的名稱 注意 只有設(shè)置了TreeView 控件的ImageList 屬性才能選擇設(shè)置節(jié)點(diǎn)的圖像
通過編程方式添加節(jié)點(diǎn)
給TreeView添加結(jié)點(diǎn)用到的是 Nodes Add 方法 首先選定要添加子結(jié)點(diǎn)的結(jié)點(diǎn)才能應(yīng)用這個方法
TreeView中的結(jié)點(diǎn)的組織關(guān)系是父結(jié)點(diǎn)管理子結(jié)點(diǎn)的關(guān)系 也就是說 子結(jié)點(diǎn)組成的集合就是父結(jié)點(diǎn)的 Nodes 屬性 子結(jié)點(diǎn)的 Index 屬性 是根據(jù)其在子結(jié)點(diǎn)集合中的位置而決定的 而不是整棵樹中結(jié)點(diǎn)的位置 根據(jù)這個特點(diǎn) 若想找到指定結(jié)點(diǎn)須按以下的語法
TreeViewName Nodes Item(Index ) Nodes
而添加結(jié)點(diǎn)的方法為
TreeViewName Nodes Item(Index ) Nodes Add( NodeText )或
TreeViewName Nodes Item(Index ) Nodes Add( objNode )
如下代碼所示為選中的節(jié)點(diǎn)添加一個子節(jié)點(diǎn)
TreeView SelectedNode Nodes Add( )
編程刪除節(jié)點(diǎn)
使用Nodes屬性的Remove 方法刪除單個節(jié)點(diǎn) 也可以使用Clear 方法清除所有的節(jié)點(diǎn) 如下代碼所示
刪除選定的節(jié)點(diǎn)
TreeView Nodes Remove(TreeView SelectedNode)
清除TreeView 控件的所有節(jié)點(diǎn)
TreeView Nodes Clear()
示例演示
我們現(xiàn)在用一個實(shí)例來看如何使用Nodes屬性來實(shí)現(xiàn)代碼編程添加刪除樹形控件的節(jié)點(diǎn) 首先為設(shè)計(jì)如下圖四所示的程序界面 其中有四個Button 控件 一個TreeView 控件
為 添加根節(jié)點(diǎn) 按鈕添加如下代碼
TreeView Nodes Add( 根節(jié)點(diǎn) (TreeView GetNodeCount(False) + ))
注意 GetNodeCount方法為獲得本級別的節(jié)點(diǎn)數(shù) 可以通過參數(shù)False來指定不包括它的子節(jié)點(diǎn)
為 添加子節(jié)點(diǎn) 按鈕添加如下代碼
Dim node As TreeNode = TreeView SelectedNode
If Not node Is Nothing Then
node Nodes Add( 子節(jié)點(diǎn) (node GetNodeCount(False) + ))
Else
MessageBox Show( 沒有選中任何節(jié)點(diǎn) )
End If
注意 TreeNode GetNodeCount 方法返回的是分配給 Nodes 集合的子樹節(jié)點(diǎn)的數(shù)目
為 刪除單個節(jié)點(diǎn) 按鈕添加代碼
Dim node As TreeNode = TreeView SelectedNode
If node Is Nothing Then
MessageBox Show( 沒有選中任何節(jié)點(diǎn) )
Else
TreeView Nodes Remove(node)
End If
為 刪除所有節(jié)點(diǎn) 按鈕添加代碼
TreeView Nodes Clear()
代碼添加完畢后 運(yùn)行程序 分別使用 添加根節(jié)點(diǎn) 添加子節(jié)點(diǎn) 為控件添加節(jié)點(diǎn) 如下圖五所示
然后再試驗(yàn)刪除節(jié)點(diǎn)的效果
三 訪問控件的所有節(jié)點(diǎn)
因?yàn)镹odes集合中所包含的只是本級節(jié)點(diǎn)的集合 如果某個Node包含有子節(jié)點(diǎn) 并不會從當(dāng)前的Nodes體現(xiàn)出來 如下代碼所示 我們只能訪問到所有的根節(jié)點(diǎn)而不是所有的節(jié)點(diǎn)
假定我們是在前面示例的基礎(chǔ)上添加一個名為 遍歷節(jié)點(diǎn) 的按鈕 然后在該按鈕的Click事件中添加如下代碼
Dim node As TreeNode
Dim str As String =
For Each node In TreeView Nodes
str = str node Text vbCr
Next
MessageBox Show(str)
node = Nothing
運(yùn)行后 先分別為控件添加若干個根節(jié)點(diǎn)與子節(jié)點(diǎn) 然后單擊 遍歷節(jié)點(diǎn) 按鈕 效果如下圖六所示
很明顯 我們遍歷了Nodes集合 但是并沒有如期訪問到子節(jié)點(diǎn) 怎么解決這個問題呢?請看下一頁
如上頁的問題 我們假設(shè)一個根節(jié)點(diǎn)的Nodes集合為Nodes 該集合中的一個Node節(jié)點(diǎn)為Node Node 下有若干個子節(jié)點(diǎn) 我們把它的子節(jié)點(diǎn)的集合稱為Nodes 我們用For Each 遍歷Nodes 時 它訪問到Node 但不會訪問Nodes 集合
如果我們要訪問Nodes 就需要像遍歷Nodes 一樣遍歷Nodes 解決辦法如下
首先 建立一個過程用于遍歷一個Node節(jié)點(diǎn)下的子節(jié)點(diǎn)
Private Sub PrintNode(ByVal N As TreeNode)
Debug WriteLine(N Text)
Dim node As TreeNode
For Each node In N Nodes
PrintNode(node)
Next
End Sub
然后把 遍歷節(jié)點(diǎn) 的Click事件中修改為如下代碼
Dim node As TreeNode
For Each node In TreeView Nodes
PrintNode(node)
Next
node = Nothing
運(yùn)行后 先分別為控件添加若干個根節(jié)點(diǎn)與子節(jié)點(diǎn) 然后單擊 遍歷節(jié)點(diǎn) 按鈕 然后查看 輸出 窗口 效果如下圖七所示
可以發(fā)現(xiàn)已經(jīng)能真正地遍歷了所有節(jié)點(diǎn)
lishixinzhi/Article/program/net/201311/11617
如果用常規(guī)編程的方法:
直接用split(str1,“,”)的形式把str1字符串分成字符串?dāng)?shù)組,然后用for循環(huán)判斷每個數(shù)組元素是否是數(shù)字或者是字符串就可以了。
Split只能處理一個字符作為分隔符,你這種情況得自己手工處理, 不能使用Split.
可以這樣寫:
s = data.Trim.Split(CChar("|"))
s(0) = s(0).Replace("file","")
Provider=Microsoft.ACE.OLEDB.4.0;Data Source=|DataDirectory|\Temp\aaa.accdb;Persist Security Info=True
或
Provider=Microsoft.ACE.OLEDB.4.0;Data Source=|DataDirectory|\Temp\aaa.accdb;Persist Security Info=True
或
Provider = Microsoft.Jet.OLEDB.4.0;Data Source ="E:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb"
需要注意的問題。
文件夾路徑中出現(xiàn)的空格處理,要加引號。
豎線是用來包括系統(tǒng)內(nèi)置路徑的,不能用作文件夾分隔符。
其它的沒有什么大問題。
vb程序中,加注釋的符號是//或者/* */,其中//為單行注釋,而/* */為多行注釋。續(xù)行符是“_”,而語句的分隔符號是”:“。vb中還有其他的符號,+為連接符號、運(yùn)算“和”、-為運(yùn)算減號、*為運(yùn)算乘號、為連接符號。
擴(kuò)展資料
vb語言中的注釋符號:
1、以Rem關(guān)鍵字開頭,并且Rem關(guān)鍵字與注釋內(nèi)容之間要加一個空格。注釋可以是單獨(dú)的一行,也可以寫在其他語句行的后面。如果在其他語句行后使用Rem關(guān)鍵字,則必須使用冒號(:)與語句隔開。
2、使用一個撇號(')來代替Rem關(guān)鍵字。若使用撇號,則在其他語句行使用時不必加冒號。
除了上述符號之外,vb中還有:
1、算術(shù)運(yùn)算符
用于各類數(shù)值運(yùn)算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運(yùn)算,%)、自增(++)、自減(--)共七種。
2、關(guān)系運(yùn)算符
用于比較運(yùn)算。包括大于()、小于()、等于(==)、 大于等于(=)、小于等于(=)和不等于(!=)六種。
3、邏輯運(yùn)算符
用于邏輯運(yùn)算。包括與()、或(||)、非(!)三種。
4、位操作運(yùn)算符
參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與()、位或(|)、位非(~)、位異或(^)、左移()、右移()六種。
5、賦值運(yùn)算符
用于賦值運(yùn)算,分為簡單賦值(=)、復(fù)合算術(shù)賦值(+=、-=、*=、/=、%=)和復(fù)合位運(yùn)算賦值(=、=、^=、=、=)三類共十一種。
6、條件運(yùn)算符
這是一個三目運(yùn)算符,用于條件求值(?:)。
7、逗號運(yùn)算符
用于把若干表達(dá)式組合成一個表達(dá)式(,)。
8、指針運(yùn)算符
用于取內(nèi)容(*)和取地址()二種運(yùn)算。
9、求字節(jié)數(shù)運(yùn)算符
用于計(jì)算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。
10、特殊運(yùn)算符
有括號(),下標(biāo)[]等幾種。
參考資料來自:百度百科-vb語言
' The file system path we need to split
Dim s As String = "C:\Users\New York\SoHo\abc.doc"
' Split the string on the backslash character
Dim parts As String() = s.Split(New Char() {"\"c})
之后取數(shù)組的最后兩個 用“\”連接起來就可以了。