C# TreeView控件使用代碼
更新時間:2009年09月24日 11:54:42 作者:
TreeView控件的實例代碼,需要的朋友可以參考下。
當(dāng)前選中項:TreeView.SelectedNode
增加頂級節(jié)點:TreeView.Nodes.Add("Key", "Text")
增加同級節(jié)點:TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text")
增加子節(jié)點:TreeView.SelectedNode.Nodes.Add("Key", "Text")
全部展開:TreeView.ExpandAll()
全部收攏:TreeView.CollapseAll()
重新設(shè)置TreeView
數(shù)據(jù)庫表結(jié)構(gòu)為: ID 類型名稱 父級ID
private void loadTreeView()
{
this.貨品類別TableAdapter1.Fill(superCargoDataSet1.貨品類別);
DataTable table = superCargoDataSet1.貨品類別;
DataRow[] row = table.Select("父級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("父級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é)點和其子結(jié)點,同時刪除數(shù)據(jù)庫中相應(yīng)記錄
數(shù)據(jù)庫表結(jié)構(gòu)為: ID 類型名稱 父級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é)點(row["ID"].ToString());
row.Delete();
}
}
貨品類別TreeView.SelectedNode.Remove();
}
}
private void delete節(jié)點(string id)
{
DataRow[] rowChildren = superCargoDataSet1.貨品類別.Select("父級ID=" + id);
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete節(jié)點(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é)點,不改變當(dāng)前選中的節(jié)點。VS2005如此。
{
this.treeView左側(cè).SelectedNode = node;
}
}
}
增加頂級節(jié)點:TreeView.Nodes.Add("Key", "Text")
增加同級節(jié)點:TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text")
增加子節(jié)點:TreeView.SelectedNode.Nodes.Add("Key", "Text")
全部展開:TreeView.ExpandAll()
全部收攏:TreeView.CollapseAll()
重新設(shè)置TreeView
數(shù)據(jù)庫表結(jié)構(gòu)為: ID 類型名稱 父級ID
復(fù)制代碼 代碼如下:
private void loadTreeView()
{
this.貨品類別TableAdapter1.Fill(superCargoDataSet1.貨品類別);
DataTable table = superCargoDataSet1.貨品類別;
DataRow[] row = table.Select("父級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("父級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é)點和其子結(jié)點,同時刪除數(shù)據(jù)庫中相應(yīng)記錄
數(shù)據(jù)庫表結(jié)構(gòu)為: ID 類型名稱 父級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é)點(row["ID"].ToString());
row.Delete();
}
}
貨品類別TreeView.SelectedNode.Remove();
}
}
private void delete節(jié)點(string id)
{
DataRow[] rowChildren = superCargoDataSet1.貨品類別.Select("父級ID=" + id);
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete節(jié)點(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é)點,不改變當(dāng)前選中的節(jié)點。VS2005如此。
{
this.treeView左側(cè).SelectedNode = node;
}
}
}
相關(guān)文章
C#通過XML節(jié)點屬性/屬性值讀取寫入XML操作代碼實例
本文主要介紹C#通過XML節(jié)點屬性、屬性值對XML的讀取,寫入操作,大家參考使用吧2013-11-11