新聞中心
大神們,vb.NET如何做出這樣的折疊菜單啊?用什么控件?求具體步驟,謝謝!!
用TreeView控件,具體方法我不記得了,你可以參照明日科技有限公司的VB1200例第一卷,里面有實(shí)例。注:這是樹樁列表,不是什么折疊菜單
創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元西區(qū)做網(wǎng)站,已為上家服務(wù),為西區(qū)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
vb點(diǎn)虐 中TreeView控件的使用
在中 TreeView(樹型結(jié)構(gòu))控件是顯示節(jié)點(diǎn)(Node)對(duì)象的級(jí)層結(jié)構(gòu) 它通常用于顯示一些有等級(jí)結(jié)構(gòu)的信息 我們最為熟悉的就是Windows資源管理器左邊顯示文件和文件夾的窗口 在工具箱中 TreeView 控件的圖標(biāo)如下圖一所示
TreeView控件的每個(gè)節(jié)點(diǎn)(Node對(duì)象)包含了一個(gè)標(biāo)簽和可選的點(diǎn)位圖 每個(gè)節(jié)點(diǎn)又可能包含有若干個(gè)的子節(jié)點(diǎn) 可以通過控制某個(gè)節(jié)點(diǎn)來展開顯示或者折疊隱藏它所包含的子節(jié)點(diǎn)
一 TreeView 控件的一些常用屬性
CheckBoxes 屬性 指示是否在樹視圖控件中的樹節(jié)點(diǎn)旁顯示復(fù)選框
FullRowSelect 屬性 當(dāng) FullRowSelect 為 true 時(shí) 選擇突出顯示將跨越樹視圖的整個(gè)寬度 即整個(gè)顯示區(qū)域的寬度而不僅僅是樹節(jié)點(diǎn)標(biāo)簽的寬度 如果 ShowLines 設(shè)置為 true 則將忽略 FullRowSelect 屬性
HideSelection 屬性 指示選定的樹節(jié)點(diǎn)是否即使在樹視圖已失去焦點(diǎn)時(shí)仍會(huì)保持突出顯示
HotTracking 屬性 如果 HotTracking 屬性設(shè)置為 true 那么當(dāng)鼠標(biāo)指針移過每個(gè)樹節(jié)點(diǎn)標(biāo)簽時(shí) 樹節(jié)點(diǎn)標(biāo)簽都將具有超級(jí)鏈接的外觀 Underline 字體樣式將應(yīng)用于 Font 而 ForeColor 將設(shè)置為藍(lán)色 從而使標(biāo)簽顯示為鏈接 注意 如果 CheckBoxes 屬性設(shè)置為 true HotTracking 屬性將失效
Indent 屬性 設(shè)置每個(gè)子樹節(jié)點(diǎn)級(jí)別的縮進(jìn)距離(以像素為單位)
ItemHeight 屬性 設(shè)置樹視圖控件中每個(gè)樹節(jié)點(diǎn)的高度
Nodes 屬性 獲取分配給樹視圖控件的樹節(jié)點(diǎn)集合 這個(gè)屬性是TreeView 控件最重要的屬性之一 我們下文將會(huì)對(duì)它進(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)旁顯示加號(hào) (+) 和減號(hào) ( ) 按鈕
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 控件 在它的屬性對(duì)話框中找到Nodes 屬性 然后單擊它后面的省略號(hào) 彈出 樹節(jié)點(diǎn)編輯器 如下圖三所示
然后通過編輯器上的 添加根 來添加根節(jié)點(diǎn) 通過 添加子級(jí) 來為選中的節(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)用這個(gè)方法
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ù)這個(gè)特點(diǎn) 若想找到指定結(jié)點(diǎn)須按以下的語(yǔ)法
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)添加一個(gè)子節(jié)點(diǎn)
TreeView SelectedNode Nodes Add( )
編程刪除節(jié)點(diǎn)
使用Nodes屬性的Remove 方法刪除單個(gè)節(jié)點(diǎn) 也可以使用Clear 方法清除所有的節(jié)點(diǎn) 如下代碼所示
刪除選定的節(jié)點(diǎn)
TreeView Nodes Remove(TreeView SelectedNode)
清除TreeView 控件的所有節(jié)點(diǎn)
TreeView Nodes Clear()
示例演示
我們現(xiàn)在用一個(gè)實(shí)例來看如何使用Nodes屬性來實(shí)現(xiàn)代碼編程添加刪除樹形控件的節(jié)點(diǎn) 首先為設(shè)計(jì)如下圖四所示的程序界面 其中有四個(gè)Button 控件 一個(gè)TreeView 控件
為 添加根節(jié)點(diǎn) 按鈕添加如下代碼
TreeView Nodes Add( 根節(jié)點(diǎn) (TreeView GetNodeCount(False) + ))
注意 GetNodeCount方法為獲得本級(jí)別的節(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ù)目
為 刪除單個(gè)節(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集合中所包含的只是本級(jí)節(jié)點(diǎn)的集合 如果某個(gè)Node包含有子節(jié)點(diǎn) 并不會(huì)從當(dāng)前的Nodes體現(xiàn)出來 如下代碼所示 我們只能訪問到所有的根節(jié)點(diǎn)而不是所有的節(jié)點(diǎn)
假定我們是在前面示例的基礎(chǔ)上添加一個(gè)名為 遍歷節(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)行后 先分別為控件添加若干個(gè)根節(jié)點(diǎn)與子節(jié)點(diǎn) 然后單擊 遍歷節(jié)點(diǎn) 按鈕 效果如下圖六所示
很明顯 我們遍歷了Nodes集合 但是并沒有如期訪問到子節(jié)點(diǎn) 怎么解決這個(gè)問題呢?請(qǐng)看下一頁(yè)
如上頁(yè)的問題 我們假設(shè)一個(gè)根節(jié)點(diǎn)的Nodes集合為Nodes 該集合中的一個(gè)Node節(jié)點(diǎn)為Node Node 下有若干個(gè)子節(jié)點(diǎn) 我們把它的子節(jié)點(diǎn)的集合稱為Nodes 我們用For Each 遍歷Nodes 時(shí) 它訪問到Node 但不會(huì)訪問Nodes 集合
如果我們要訪問Nodes 就需要像遍歷Nodes 一樣遍歷Nodes 解決辦法如下
首先 建立一個(gè)過程用于遍歷一個(gè)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)行后 先分別為控件添加若干個(gè)根節(jié)點(diǎn)與子節(jié)點(diǎn) 然后單擊 遍歷節(jié)點(diǎn) 按鈕 然后查看 輸出 窗口 效果如下圖七所示
可以發(fā)現(xiàn)已經(jīng)能真正地遍歷了所有節(jié)點(diǎn)
lishixinzhi/Article/program/net/201311/11617
vb點(diǎn)虐 中有沒有好用的圖表控件?免費(fèi)的,能畫折線圖的
TeeChart5
這個(gè)畫圖表很不錯(cuò)。。
百度一下一大堆下載的。
vb點(diǎn)虐 中有沒有像電子表格一樣的免費(fèi)控件?有的話那里有下?怎么使用?
1.商業(yè)化的電子表格應(yīng)該蠻多的
用友買了一個(gè)叫華表的控件
采用ActiveX的方式運(yùn)行的
具體我也沒有用過
2.采用點(diǎn)虐 組件,結(jié)合javascript方式實(shí)現(xiàn)
文章題目:vb點(diǎn)虐 免費(fèi)折疊控件 vs2010折疊代碼
當(dāng)前鏈接:http://www.ef60e0e.cn/article/ddshgjg.html