日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#TreeView控件

發布時間:2024/10/8 C# 97 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#TreeView控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

樹形結構如果不是從數據庫中取數據填充,也不想使用“TreeNode”編輯器,

可以使用如下代碼,有多少級別都可以,代碼如下:

TreeNode RootNode = new TreeNode();
??????????? TreeNode SonNode1 = new TreeNode("兒子1");
??????????? TreeNode SonNode2 = new TreeNode("兒子2");

??????????? RootNode.Text = "報表統計";

??????????? RootNode.Nodes.Add("節點1");
??????????? RootNode.Nodes.Add("節點2");
??????????? RootNode.Nodes.Add("節點3");

??????????
??????????? SonNode1.Nodes.Add("節點11");
??????????? SonNode1.Nodes.Add("節點12");

??????????? SonNode2.Nodes.Add("節點21");
??????????? SonNode2.Nodes.Add("節點22");

??????????? RootNode.Nodes.Add(SonNode1);
??????????? RootNode.Nodes.Add(SonNode2);
??????????? treeView1.Nodes.Add(RootNode);

生成結果如下圖所示:

這只是一個小例子,我們可以添加SonNode1.Nodes.Add(Key,Text),如下

SonNode1.Nodes.Add("節點11","名稱");

如果還行美觀一些則可以加圖片

SonNode1.Nodes.Add("節點11","名稱",Imageindex,SelectImageIndex);

Imageindex:為要顯示的圖片,SelectImageIndex:為選擇該節點顯示的圖片

?

--------------------另一篇----------------

TreeView組件是由多個類來定義的,TreeView組件是由命名空間"System.Windows.Forms"中的"TreeView"類 來定義的,而其中的節點(即Node),是由命名空間"System.Windows.Forms"中的"TreeNode"來定義的。所以當在程序中創 建一個TreeView對象,其實只是創建了一個可以放置節點的"容器"。而在這個容器中加入一個節點,其實就是加入了從"TreeNode"類中創建的 一個節點對象;同樣刪除一個節點,也就是刪除一個"TreeNode"節點對象。

一. 本文中介紹的程序設計及運行環境



(1).微軟視窗2000 服務器版

(2)..Net Framework SDK 正式版



二. C#操作TreeView組件中的一些常用方法以及具體實現:



TreeView組件雖然是一個操作起來比較麻煩的組件,但歸根到底,可以總結為三種基本操作:加入子節點、加入兄弟節點和刪除節點。掌握了這三種常用操作,對于在編程中靈活運用TreeView組件是十分必要的。下面就分別來加以介紹。

(1).加入子節點:



所謂子節點,就是處于選定節點的下一級節點。加入子節點的具體過程是:首先要在TreeView組件中定位要加入的子節點的位置,然后創建一個節點對 象,然后利用TreeVeiw類中對節點的加入方法(即:Add ( )方法),加入此節點對象。下面就是在treeView1組件中加入一個子節點的具體代碼:







//首先判斷是否選定組件中的位置

if ( treeView1.SelectedNode == null )

{

MessageBox.Show ( "請選擇一個節點" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

}

else

{

//創建一個節點對象,并初始化

TreeNode tmp ;

tmp = new TreeNode ( "節點名稱" ) ;

//在TreeView組件中加入子節點

treeView1.SelectedNode.Nodes.Add ( tmp ) ;

treeView1.SelectedNode = tmp ;

treeView1.ExpandAll ( ) ;

}


(2).加入兄弟節點:

所謂兄弟節點,就是在選定的節點的平級的節點。加入兄弟節點的方法和加入子節點的方法基本一致,只是在最后的實現方法上有著略微的區別。加入兄弟節點的 具體步驟,首先也是要確定要加入的兄弟節點所處的位置,接著定義一個節點對象,最后調用TreeView類中對兄弟節點加入的方法,加入此節點對象。加入 兄弟節點和加入子節點的最大區別就在于這最后一步。希望讀者能夠注意。下面是在TreeView組件加入一個兄弟節點的具體代碼:


//首先判斷是否選定組件中節點的位置

if ( treeView1.SelectedNode == null )

{

MessageBox.Show ( "請選擇一個節點" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

}

else

{

//創建一個節點對象,并初始化

TreeNode tmp ;

tmp = new TreeNode ( textBox1.Text ) ;

//在TreeView組件中加入兄弟節點

treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;

treeView1.ExpandAll ( ) ;

}


(3).刪除節點:

刪除節點就是刪除TreeView組件中選定的節點,刪除節點可以是子節點,也可以是兄弟節點,但無論節點的性質如何,必須保證要刪除的節點沒有下一級 節點,否則必須先刪除此節點中的所有下一級節點,然后再刪除此節點。刪除節點比起上面的二個操作要顯得略微簡單,具體方法是:首先判斷要刪除的節點是否存 在下一級節點,如果不存在,就調用TreeView類中的Remove ( )方法,就可以刪除節點了。下面是刪除TreeView組件中節點的具體代碼:

//判斷選定的節點是否存在下一級節點

if ( treeView1.SelectedNode.Nodes.Count == 0 )

//刪除節點

treeView1.SelectedNode.Remove ( ) ;

else

MessageBox.Show ( "請先刪除此節點中的子節點!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;


(4).TreeView組件的一些其他常用操作:

其他的一些常用操作比起上面的三種操作,在具體實現上要顯得簡單許多。這些常用操作無非是,展開所有節點,展開指定的節點、和折疊所有節點。下面就來具體介紹一下:

< I > .展開所有節點:

要展開TreeView組件中的所有節點,首先就要把選定的節點指針定位在TreeView組件的根節點上,然后調用選定組件的ExpandAll方法就可以了,下面是具體代碼:

//定位根節點

treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;

//展開組件中的所有節點

treeView1.SelectedNode.ExpandAll ( ) ;

< II > .展開選定節點的下一級節點:

由于只是展開下一級節點,所以就沒有必要用ExpandAll ( )方法了。展開下一級節點只需要調用Expand ( )方法就可以了,下面是具體的實現代碼:

treeView1.SelectedNode.Expand ( ) ;

< III > .折疊所有節點:

折疊所有節點和展開所有節點是一組互操作,具體實現的思路也大致相同,折疊所有節點也是首先要把選定的節點指針定位在根節點上,然后調用選定組件的Collapse ( )就可以了,下面是具體的實現代碼:


//定位根節點

treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;

//折疊組件中所有節點

treeView1.SelectedNode.Collapse ( ) ;


至此已經把在C#操作TreeView組件的常用方法和一般方法基本都介紹完了。

三. C#編寫的一個完整操作TreeView組件的例子:

下面是C#編寫一個的關于TreeView組件的例子,在這個例子中,結合以上介紹的常用方法和一般方法,基本覆蓋來TreeView組件的一些最常用 的操作。譬如可以靈活的程序中的TreeView組件中,進行加入子節點、兄弟節點、刪除節點、折疊、展開等操作。其中前三種基本操作是通過程序中彈出菜 單中的功能來實現的,后面操作是通過程序中的按鈕來實現的。下面是此程序的代碼節略(TreeView.cs):

using System ;

using System.Drawing ;

using System.Collections ;

using System.ComponentModel ;

using System.Windows.Forms ;

using System.Data ;

namespace 全面掌握TreeView組件的使用方法

{

/// Form1 的摘要說明。

public class Form1 : Form

{

******* TreeView treeView1 ;

******* Button button1 ;

******* Button button2 ;

******* Button button3 ;

******* MenuItem menuItem2 ;

******* MenuItem menuItem3 ;

******* MenuItem menuItem4 ;

******* ContextMenu contextMenu1 ;

******* TextBox textBox1 ;

******* Label label1 ;

/// 必需的設計器變量。

******* System.ComponentModel.Container components = null ;

public Form1 ( )

{

//初始化窗體中的組件

InitializeComponent ( ) ;

}

/// 清理所有正在使用的資源。

protected override void Dispose ( bool disposing )

{

if ( disposing )

{

if ( components != null )

{

components.Dispose ( ) ;

}

}

base.Dispose ( disposing ) ;

}

******* void InitializeComponent ( )

{

//初始化代碼(略)

}

[ STAThread ]

static void Main ( )

{

Application.Run ( new Form1 ( ) ) ;

}

******* void AddChildNode ( )

{

//首先判斷是否選定組件中的位置

if ( treeView1.SelectedNode == null )

{

MessageBox.Show ( "請選擇一個節點" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

}

else

{

if ( textBox1.Text != "" )

{

//創建一個節點對象,并初始化

TreeNode tmp ;

tmp = new TreeNode ( textBox1.Text ) ;

//在TreeView組件中加入子節點

treeView1.SelectedNode.Nodes.Add ( tmp ) ;

treeView1.SelectedNode = tmp ;

treeView1.ExpandAll ( ) ;

}

else

{

MessageBox.Show ( "TextBox組件必須填入節點名稱!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

return ;

}

}

}

******* void AddParent ( )

{

//首先判斷是否選定組件中節點的位置

if ( treeView1.SelectedNode == null )

{

MessageBox.Show ( "請選擇一個節點" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

}

else

{

if ( textBox1.Text != "" )

{

//創建一個節點對象,并初始化

TreeNode tmp ;

tmp = new TreeNode ( textBox1.Text ) ;

//在TreeView組件中加入兄弟節點

treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;

treeView1.ExpandAll ( ) ;

}

else

{

MessageBox.Show ( "TextBox組件必須填入節點名稱!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

return ;

}

}

TreeNode tnode = new TreeNode ( textBox1.Text ) ;

}

******* void treeView1_MouseDown ( object sender , MouseEventArgs e )

{

if ( e.Button == MouseButtons.Right )

contextMenu1.Show ( this , new Point ( e.X , e.Y ) ) ;

}

******* void button1_Click ( object sender , System.EventArgs e )

{

treeView1.SelectedNode.Expand ( ) ;

}

******* void menuItem2_Click ( object sender , System.EventArgs e )

{

AddChildNode ( ) ;

}

******* void menuItem3_Click ( object sender , System.EventArgs e )

{

AddParent ( ) ;

}

******* void menuItem4_Click ( object sender , System.EventArgs e )

{

//判斷選定的節點是否存在下一級節點

if ( treeView1.SelectedNode.Nodes.Count == 0 )

//刪除節點

treeView1.SelectedNode.Remove ( ) ;

else

MessageBox.Show ( "請先刪除此節點中的子節點!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

}

******* void button2_Click ( object sender , System.EventArgs e )

{

//定位根節點

treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;

//展開組件中的所有節點

treeView1.SelectedNode.ExpandAll ( ) ;

}

******* void button3_Click ( object sender , System.EventArgs e )

{

//定位根節點

treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;

//折疊組件中所有節點

treeView1.SelectedNode.Collapse ( ) ;

}

}

}

轉載于:https://www.cnblogs.com/hackpig/archive/2010/02/15/1668405.html

總結

以上是生活随笔為你收集整理的C#TreeView控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。