C# TreeView控件使用代碼
更新時(shí)間:2009年09月24日 11:54:42 作者:
TreeView控件的實(shí)例代碼,需要的朋友可以參考下。
當(dāng)前選中項(xiàng):TreeView.SelectedNode
增加頂級(jí)節(jié)點(diǎn):TreeView.Nodes.Add("Key", "Text")
增加同級(jí)節(jié)點(diǎn):TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text")
增加子節(jié)點(diǎn):TreeView.SelectedNode.Nodes.Add("Key", "Text")
全部展開:TreeView.ExpandAll()
全部收攏:TreeView.CollapseAll()
重新設(shè)置TreeView
數(shù)據(jù)庫(kù)表結(jié)構(gòu)為: ID 類型名稱 父級(jí)ID
private void loadTreeView()
{
this.貨品類別TableAdapter1.Fill(superCargoDataSet1.貨品類別);
DataTable table = superCargoDataSet1.貨品類別;
DataRow[] row = table.Select("父級(jí)ID=0");
foreach (DataRow r in row)
{
TreeNode node = 貨品類別TreeView.Nodes.Add(r["ID"].ToString(), r["類型名稱"].ToString());
recursionShow(node, r["ID"].ToString());
}
}
private void recursionShow(TreeNode nodes, string id)
{
DataTable table = superCargoDataSet1.貨品類別;
DataRow[] row = table.Select("父級(jí)ID=" + id);
if (row != null)
{
foreach (DataRow r in row)
{
TreeNode node = nodes.Nodes.Add(r["ID"].ToString(), r["類型名稱"].ToString());
recursionShow(node, r["ID"].ToString());
}
}
}
刪除選中節(jié)點(diǎn)和其子結(jié)點(diǎn),同時(shí)刪除數(shù)據(jù)庫(kù)中相應(yīng)記錄
數(shù)據(jù)庫(kù)表結(jié)構(gòu)為: ID 類型名稱 父級(jí)ID
private void 刪除ToolStripButton_Click(object sender, EventArgs e)
{
if (貨品類別TreeView.SelectedNode != null)
{
DataRow[] rowChildren = superCargoDataSet1.貨品類別.Select("ID=" + 貨品類別TreeView.SelectedNode.Name.ToString());
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete節(jié)點(diǎn)(row["ID"].ToString());
row.Delete();
}
}
貨品類別TreeView.SelectedNode.Remove();
}
}
private void delete節(jié)點(diǎn)(string id)
{
DataRow[] rowChildren = superCargoDataSet1.貨品類別.Select("父級(jí)ID=" + id);
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete節(jié)點(diǎn)(row["ID"].ToString());
row.Delete();
}
}
}
TreeView右鍵選中
private void treeView左側(cè)_MouseDown( object sender , MouseEventArgs e )
{
if( e.Button == MouseButtons.Right )
{
TreeNode node = treeView左側(cè).GetNodeAt (e.X , e.Y);
if( node != null )//右鍵未選中節(jié)點(diǎn),不改變當(dāng)前選中的節(jié)點(diǎn)。VS2005如此。
{
this.treeView左側(cè).SelectedNode = node;
}
}
}
增加頂級(jí)節(jié)點(diǎn):TreeView.Nodes.Add("Key", "Text")
增加同級(jí)節(jié)點(diǎn):TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text")
增加子節(jié)點(diǎn):TreeView.SelectedNode.Nodes.Add("Key", "Text")
全部展開:TreeView.ExpandAll()
全部收攏:TreeView.CollapseAll()
重新設(shè)置TreeView
數(shù)據(jù)庫(kù)表結(jié)構(gòu)為: ID 類型名稱 父級(jí)ID
復(fù)制代碼 代碼如下:
private void loadTreeView()
{
this.貨品類別TableAdapter1.Fill(superCargoDataSet1.貨品類別);
DataTable table = superCargoDataSet1.貨品類別;
DataRow[] row = table.Select("父級(jí)ID=0");
foreach (DataRow r in row)
{
TreeNode node = 貨品類別TreeView.Nodes.Add(r["ID"].ToString(), r["類型名稱"].ToString());
recursionShow(node, r["ID"].ToString());
}
}
private void recursionShow(TreeNode nodes, string id)
{
DataTable table = superCargoDataSet1.貨品類別;
DataRow[] row = table.Select("父級(jí)ID=" + id);
if (row != null)
{
foreach (DataRow r in row)
{
TreeNode node = nodes.Nodes.Add(r["ID"].ToString(), r["類型名稱"].ToString());
recursionShow(node, r["ID"].ToString());
}
}
}
刪除選中節(jié)點(diǎn)和其子結(jié)點(diǎn),同時(shí)刪除數(shù)據(jù)庫(kù)中相應(yīng)記錄
數(shù)據(jù)庫(kù)表結(jié)構(gòu)為: ID 類型名稱 父級(jí)ID
復(fù)制代碼 代碼如下:
private void 刪除ToolStripButton_Click(object sender, EventArgs e)
{
if (貨品類別TreeView.SelectedNode != null)
{
DataRow[] rowChildren = superCargoDataSet1.貨品類別.Select("ID=" + 貨品類別TreeView.SelectedNode.Name.ToString());
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete節(jié)點(diǎn)(row["ID"].ToString());
row.Delete();
}
}
貨品類別TreeView.SelectedNode.Remove();
}
}
private void delete節(jié)點(diǎn)(string id)
{
DataRow[] rowChildren = superCargoDataSet1.貨品類別.Select("父級(jí)ID=" + id);
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete節(jié)點(diǎn)(row["ID"].ToString());
row.Delete();
}
}
}
TreeView右鍵選中
復(fù)制代碼 代碼如下:
private void treeView左側(cè)_MouseDown( object sender , MouseEventArgs e )
{
if( e.Button == MouseButtons.Right )
{
TreeNode node = treeView左側(cè).GetNodeAt (e.X , e.Y);
if( node != null )//右鍵未選中節(jié)點(diǎn),不改變當(dāng)前選中的節(jié)點(diǎn)。VS2005如此。
{
this.treeView左側(cè).SelectedNode = node;
}
}
}
您可能感興趣的文章:
- c# TreeView添加右鍵快鍵菜單有兩種方法
- C# TreeView讀取數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)例
- C#中TreeView實(shí)現(xiàn)適合兩級(jí)節(jié)點(diǎn)的選中節(jié)點(diǎn)方法
- C#實(shí)現(xiàn)TreeView節(jié)點(diǎn)拖拽的方法
- C#自定義DataGridViewColumn顯示TreeView
- C# TreeView無限目錄樹實(shí)現(xiàn)方法
- c# WPF中的TreeView使用詳解
- C#利用TreeView控件實(shí)現(xiàn)目錄跳轉(zhuǎn)
- C#?TreeView控件使用技巧匯總
相關(guān)文章
C#通過XML節(jié)點(diǎn)屬性/屬性值讀取寫入XML操作代碼實(shí)例
本文主要介紹C#通過XML節(jié)點(diǎn)屬性、屬性值對(duì)XML的讀取,寫入操作,大家參考使用吧2013-11-11c#實(shí)現(xiàn)winform屏幕截圖并保存的示例
這篇文章主要介紹了c#實(shí)現(xiàn)winform屏幕截圖并保存的示例,需要的朋友可以參考下2014-02-02關(guān)于C#基礎(chǔ)知識(shí)回顧--反射(一)
其實(shí)說白了,反射就是能知道我們未知類型的類型信息這么一個(gè)東西.沒什么神秘可講!反射的核心是System.Type。System.Type包含了很多屬性和方法,使用這些屬性和方法可以在運(yùn)行時(shí)得到類型信息2013-07-07解決C#中取消方向鍵對(duì)控件焦點(diǎn)控制的實(shí)現(xiàn)方法
本篇文章是對(duì)C#中取消方向鍵對(duì)控件焦點(diǎn)控制的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C# 實(shí)現(xiàn)特殊字符快速轉(zhuǎn)碼
這篇文章主要介紹了C# 實(shí)現(xiàn)特殊字符快速轉(zhuǎn)碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01