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")
全部展開(kāi):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")
全部展開(kāi):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;
}
}
}
相關(guān)文章
C#利用ASP.NET?Core開(kāi)發(fā)學(xué)生管理系統(tǒng)詳解
隨著技術(shù)的進(jìn)步,跨平臺(tái)開(kāi)發(fā)已經(jīng)成為了標(biāo)配,在此大背景下,ASP.NET?Core也應(yīng)運(yùn)而生。本文主要利用ASP.NET?Core開(kāi)發(fā)一個(gè)學(xué)生管理系統(tǒng),感興趣的可以學(xué)習(xí)一下2022-01-01
C#設(shè)計(jì)模式之建造者模式生成器模式示例詳解
這篇文章主要為大家介紹了C#設(shè)計(jì)模式之建造者模式生成器模式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
如何在C#中使用JIEBA.NET實(shí)現(xiàn)中文分詞
JIEBA 是一款優(yōu)秀的中文分詞工具,為了方便 .NET 開(kāi)發(fā)者使用,JIEBA.NET 作為一個(gè)封裝了 JIEBA 的 C# 庫(kù),提供了類似的分詞功能,下面我們來(lái)看看它的具體操作吧2025-03-03
使用C#實(shí)現(xiàn)隱藏Excel單個(gè)和多個(gè)工作表的示例詳解
許多?Excel?文件中往往包含用于計(jì)算、中間處理或內(nèi)部引用的數(shù)據(jù)工作表,這些內(nèi)容并不需要對(duì)最終用戶展示,下面我們就來(lái)看看如何使用C#實(shí)現(xiàn)隱藏Excel單個(gè)和多個(gè)工作表吧2025-12-12

