欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# TreeNode案例詳解

 更新時(shí)間:2021年08月19日 09:38:35   作者:luckyone906  
這篇文章主要介紹了C# TreeNode案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

添加節(jié)點(diǎn)

private void Form1_Load(object sender, EventArgs e)  
{  
    treeView1.LabelEdit = true;//可編輯狀態(tài)。  
  
    //添加一個(gè)節(jié)點(diǎn),這個(gè)結(jié)點(diǎn)是根節(jié)點(diǎn)。  
    TreeNode node = new TreeNode();  
    node.Text = "hope";  
    treeView1.Nodes.Add(node);  
  
    TreeNode node1 = new TreeNode();  
    node1.Text = "hopeone";  
    TreeNode node11 = new TreeNode();  
    node11.Text = "hopeoneone";  
    TreeNode node2 = new TreeNode();  
    node2.Text = "hopetwo";  
  
    node1.Nodes.Add(node11);//在node1下面在添加一個(gè)結(jié)點(diǎn)。  
  
    node.Nodes.Add(node1);//node下的兩個(gè)子節(jié)點(diǎn)。  
    node.Nodes.Add(node2);  
  
  
    TreeNode t = new TreeNode("basil");//作為根節(jié)點(diǎn)。  
    treeView1.Nodes.Add(t);  
    TreeNode t1 = new TreeNode("basilone");  
    t.Nodes.Add(t1);  
    TreeNode t2 = new TreeNode("basiltwo");  
    t.Nodes.Add(t2);  
}  
private void Form1_Load(object sender, EventArgs e)
        {
            treeView1.LabelEdit = true;//可編輯狀態(tài)。
 
            //添加一個(gè)節(jié)點(diǎn),這個(gè)結(jié)點(diǎn)是根節(jié)點(diǎn)。
            TreeNode node = new TreeNode();
            node.Text = "hope";
            treeView1.Nodes.Add(node);
 
            TreeNode node1 = new TreeNode();
            node1.Text = "hopeone";
            TreeNode node11 = new TreeNode();
            node11.Text = "hopeoneone";
            TreeNode node2 = new TreeNode();
            node2.Text = "hopetwo";
 
            node1.Nodes.Add(node11);//在node1下面在添加一個(gè)結(jié)點(diǎn)。
 
            node.Nodes.Add(node1);//node下的兩個(gè)子節(jié)點(diǎn)。
            node.Nodes.Add(node2);
 
 
            TreeNode t = new TreeNode("basil");//作為根節(jié)點(diǎn)。
            treeView1.Nodes.Add(t);
            TreeNode t1 = new TreeNode("basilone");
            t.Nodes.Add(t1);
            TreeNode t2 = new TreeNode("basiltwo");
            t.Nodes.Add(t2);
        }

刪除

private void button1_Click(object sender, EventArgs e)  
      {  
          //點(diǎn)擊該按鈕的時(shí)候,會(huì)移除選中項(xiàng)  
          treeView1.Nodes.Remove(treeView1.SelectedNode);  
      }
private void button1_Click(object sender, EventArgs e)
        {
            //點(diǎn)擊該按鈕的時(shí)候,會(huì)移除選中項(xiàng)
            treeView1.Nodes.Remove(treeView1.SelectedNode);
        }

修改

private void button2_Click(object sender, EventArgs e)  
       {  
           //點(diǎn)擊這個(gè)按鈕的時(shí)候,可以修改選中項(xiàng)  
           //注意:在使用這個(gè)屬性的時(shí)候,必須設(shè)置treeView1.LabelEdit =true,否則會(huì)提示錯(cuò)誤。  
           treeView1.SelectedNode.BeginEdit();  
       }
private void button2_Click(object sender, EventArgs e)
        {
            //點(diǎn)擊這個(gè)按鈕的時(shí)候,可以修改選中項(xiàng)
            //注意:在使用這個(gè)屬性的時(shí)候,必須設(shè)置treeView1.LabelEdit =true,否則會(huì)提示錯(cuò)誤。
            treeView1.SelectedNode.BeginEdit();
        }

C#中Treeview判斷選擇的節(jié)點(diǎn)并執(zhí)行不同的方法

Treeview,點(diǎn)擊不同的節(jié)點(diǎn)(包括父節(jié)點(diǎn)和父節(jié)點(diǎn)下的子節(jié)點(diǎn))觸發(fā)不同的事件,執(zhí)行相應(yīng)的方法

方法1:

treeView1_AfterSelect事件就是treeView1中節(jié)點(diǎn)被選擇觸發(fā)的事件,e.Node指的是當(dāng)前選中的節(jié)點(diǎn),e.Node.Nodes指的是當(dāng)前選中節(jié)點(diǎn)的子節(jié)點(diǎn)集合。

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)  
      {  
          if (e.Action == TreeViewAction.ByMouse)  
          {  
              //當(dāng)前選中的節(jié)點(diǎn)有父節(jié)點(diǎn),并且該父節(jié)點(diǎn)在相同級別的父節(jié)點(diǎn)中排行第一。  
              if (e.Node.Parent != null && e.Node.Parent.Index == 0)  
              {    
                  //當(dāng)前選中節(jié)點(diǎn)在所有的兄弟節(jié)點(diǎn)中排第 一  
                  if(e.Node.Index==0)   
                  {  
                       //調(diào)用相應(yīng)的方法();  
                  }  
              }  
              //表示當(dāng)前節(jié)點(diǎn)沒有父節(jié)點(diǎn),并且在兄弟節(jié)點(diǎn)中排行第五(由零開始索引)  
              if(e.Node.Parent==null&&e.Node.Index==4)  
              {  
             //調(diào)用相應(yīng)的方法();  
               }  
          }  
      }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Action == TreeViewAction.ByMouse)
            {
                //當(dāng)前選中的節(jié)點(diǎn)有父節(jié)點(diǎn),并且該父節(jié)點(diǎn)在相同級別的父節(jié)點(diǎn)中排行第一。
                if (e.Node.Parent != null && e.Node.Parent.Index == 0)
                {  
                    //當(dāng)前選中節(jié)點(diǎn)在所有的兄弟節(jié)點(diǎn)中排第 一
                    if(e.Node.Index==0) 
                    {
                         //調(diào)用相應(yīng)的方法();
                    }
                }
                //表示當(dāng)前節(jié)點(diǎn)沒有父節(jié)點(diǎn),并且在兄弟節(jié)點(diǎn)中排行第五(由零開始索引)
                if(e.Node.Parent==null&&e.Node.Index==4)
                {
               //調(diào)用相應(yīng)的方法();
                 }
            }
        }

方法二:

通過節(jié)點(diǎn)的Name屬性來判斷具體是哪個(gè)節(jié)點(diǎn)被選擇,并執(zhí)行相應(yīng)的方法(這種方法效率高一些)

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)  
        {  
             if (e.Action == TreeViewAction.ByMouse)  
             {  
                 //說明當(dāng)前選中節(jié)點(diǎn)沒有子節(jié)點(diǎn)  
                 if(e.Node.Nodes.Count==0)  
                 {  
                      if(e.Node.name="aaa")  
                      {  
                           //執(zhí)行相應(yīng)的方法();  
                      }  
                      else if(e.Node.Name="bbb")  
                      {  
                           //執(zhí)行相應(yīng)的方法();  
                      }  
                 }  
            }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
         {
              if (e.Action == TreeViewAction.ByMouse)
              {
                  //說明當(dāng)前選中節(jié)點(diǎn)沒有子節(jié)點(diǎn)
                  if(e.Node.Nodes.Count==0)
                  {
                       if(e.Node.name="aaa")
                       {
                            //執(zhí)行相應(yīng)的方法();
                       }
                       else if(e.Node.Name="bbb")
                       {
                            //執(zhí)行相應(yīng)的方法();
                       }
                  }
             }

C# 怎么判斷TreeView選中的是子節(jié)點(diǎn) ?并且是屬于哪個(gè)父節(jié)?

TreeNode selNode = tree.SelectedNode;  
if (selNode == null)  
{  
    //防止空引用  
    return;  
}  
if (selNode.Parent != null)  
{  
    //為有父親節(jié)點(diǎn)的,  
    TreeNode parentNode = selNode.Parent;//得到父親節(jié)點(diǎn)                
    if (selNode.Nodes.Count == 0)  
    {  
        //為沒有子節(jié)點(diǎn),即選中的節(jié)點(diǎn)為葉子節(jié)點(diǎn)  
    }  
}
TreeNode selNode = tree.SelectedNode;
if (selNode == null)
{
    //防止空引用
    return;
}
if (selNode.Parent != null)
{
    //為有父親節(jié)點(diǎn)的,
    TreeNode parentNode = selNode.Parent;//得到父親節(jié)點(diǎn)              
    if (selNode.Nodes.Count == 0)
    {
        //為沒有子節(jié)點(diǎn),即選中的節(jié)點(diǎn)為葉子節(jié)點(diǎn)
    }
}

C#.Net中TreeView控件右鍵選擇節(jié)點(diǎn)問題處理

private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)    
{    
    if(e.Button==MouseButtons.Right)    
    {    
        TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);    
        if(tn!=null)treeView1.SelectedNode = tn;    
    }    
} 
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)  
{  
    if(e.Button==MouseButtons.Right)  
    {  
        TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);  
        if(tn!=null)treeView1.SelectedNode = tn;  
    }  
}

treeView默認(rèn) 展開

treeView1.ExpandAll();

默認(rèn)選中TreeVIew中的一個(gè)節(jié)點(diǎn)

//先找到你要設(shè)置選中的節(jié)點(diǎn)
TreeNode tn = treeView1.Nodes[3];
//把要設(shè)置的節(jié)點(diǎn)給SelectedNode
this.treeView1.SelectedNode = tn;
//this.TreeView1.SelectedNodeIndex="";

TreeView,左鍵單擊節(jié)點(diǎn)時(shí)可修改節(jié)點(diǎn)名稱

TreeView本身可支持左鍵修改名稱
在初始化時(shí)設(shè)置:
TreeView.LabelEdit = true; 
這樣應(yīng)用程序的treeview生成以后就支持單擊節(jié)點(diǎn)修改。
如果不想左鍵修改,可在treeView1_MouseDown中設(shè)置treeView1.LabelEdit = false;
右鍵菜單 重命名
treeView1.LabelEdit = true;
treeView.SelectedNode.BeginEdit();

TreeVIew清空

TreeView.Nodes.Clear()

到此這篇關(guān)于C# TreeNode案例詳解的文章就介紹到這了,更多相關(guān)C# TreeNode使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息

    java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片角度旋轉(zhuǎn)并獲得圖片信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • spring jdbctemplate的用法小結(jié)

    spring jdbctemplate的用法小結(jié)

    jdbcTemplate是spring框架中提供的一個(gè)對象,是對原始繁雜的jdbc 對象的簡單封裝,本文通過實(shí)例代碼介紹spring jdbctemplate的用法小結(jié),需要的朋友可以參考下
    2023-04-04
  • 詳解Java的Struts框架中注釋的用法

    詳解Java的Struts框架中注釋的用法

    這篇文章主要介紹了詳解Java的Struts框架中注釋的用法,Struts是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • Java中一個(gè)for語句導(dǎo)致無窮大死循環(huán)的例子

    Java中一個(gè)for語句導(dǎo)致無窮大死循環(huán)的例子

    這篇文章主要介紹了Java中一個(gè)for語句導(dǎo)致無窮大死循環(huán)的例子,本文給出的是一個(gè)很特別的例子,這個(gè)例子會(huì)跟你所想的結(jié)果不一樣,需要的朋友可以參考下
    2015-06-06
  • 利用Java工具類Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能

    利用Java工具類Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能

    這篇文章主要介紹了利用Java工具類Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能,利用Hutool實(shí)現(xiàn)驗(yàn)證碼校驗(yàn),校驗(yàn)的Servlet與今天的第一篇是一樣的,唯一就是驗(yàn)證碼的生成是不一樣的,利用Hutool生成驗(yàn)證碼更快捷.需要的朋友可以參考下
    2022-10-10
  • Spring Cloud Stream 高級特性使用詳解

    Spring Cloud Stream 高級特性使用詳解

    這篇文章主要為大家介紹了Spring Cloud Stream 高級特性使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Redis實(shí)現(xiàn)商品秒殺功能頁面流程

    Redis實(shí)現(xiàn)商品秒殺功能頁面流程

    這篇文章主要介紹了Redis實(shí)現(xiàn)商品秒殺功能的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 詳解Jmeter中的BeanShell腳本

    詳解Jmeter中的BeanShell腳本

    BeanShell是一種完全符合Java語法規(guī)范的腳本語言,并且又擁有自己的一些語法和方法,所以它和java是可以無縫銜接的,學(xué)了Java的一些基本語法后,就可以來在Jmeter中寫寫B(tài)eanShell腳本了
    2021-12-12
  • Java8 CompletableFuture詳解

    Java8 CompletableFuture詳解

    這篇文章主要介紹了Java8 CompletableFuture詳解,CompletableFuture extends Future提供了方法,一元操作符和促進(jìn)異步性以及事件驅(qū)動(dòng)編程模型,需要的朋友可以參考下
    2014-06-06
  • MapStruct實(shí)體轉(zhuǎn)換及List轉(zhuǎn)換的方法講解

    MapStruct實(shí)體轉(zhuǎn)換及List轉(zhuǎn)換的方法講解

    今天小編就為大家分享一篇關(guān)于MapStruct實(shí)體轉(zhuǎn)換及List轉(zhuǎn)換的方法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論