雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁(yè) > 軟件編程 > C#教程 >

C#中TreeView實(shí)現(xiàn)適合兩級(jí)節(jié)點(diǎn)的選中節(jié)點(diǎn)方法

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊:

本文實(shí)例講述了C#中TreeView實(shí)現(xiàn)適合兩級(jí)節(jié)點(diǎn)的選中節(jié)點(diǎn)方法。分享給大家供大家參考。具體如下:

class TreeViewChecked
{
  bool isfirst = true;
  public TreeViewChecked(TreeView treeView)
  {
   treeView.AfterCheck += new TreeViewEventHandler(treeView_AfterCheck);
   treeView.AfterSelect += new TreeViewEventHandler(treeView_AfterSelect);
  }
  /// <summary>
  /// 點(diǎn)擊文字,選中checkbox
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  void treeView_AfterSelect(object sender, TreeViewEventArgs e)
  {
   if (e.Node.Checked)
    e.Node.Checked = false;
   else
    e.Node.Checked = true;
   if (isfirst)
   {
    isfirst = false;
    e.Node.TreeView.Nodes[0].Checked = false;
   }
  }
  /// <summary>
  /// 選中子節(jié)點(diǎn),勾選父節(jié)點(diǎn),選中父節(jié)點(diǎn),勾選子節(jié)點(diǎn)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  void treeView_AfterCheck(object sender, TreeViewEventArgs e)
  {
   CheckTreeNode(e.Node);
  }
  /// <summary>
  /// 選中子節(jié)點(diǎn),勾選父節(jié)點(diǎn),選中父節(jié)點(diǎn),勾選子節(jié)點(diǎn)
  /// </summary>
  /// <param name="node"></param>
  private void CheckTreeNode(TreeNode node)
  {
   node.TreeView.AfterCheck -= new TreeViewEventHandler(treeView_AfterCheck);
   //如果不等于null,說(shuō)明選擇的是子節(jié)點(diǎn)
   if (node.Parent != null)
   {
    TreeNode parent = node.Parent as TreeNode;
    //如果該節(jié)點(diǎn)是選中的
    if (node.Checked)
    {
     //判斷其父節(jié)點(diǎn)是否被選中,如果沒有被選中則選中它
     if (parent.Checked == false)
     {
      parent.Checked = true;
     }
    }
    else
    {
     bool ischecked = false;
     foreach (TreeNode child in parent.Nodes)
     {
      if (child.Checked)
      {
       ischecked = true;
       break;
      }
     }
     if (ischecked)
      parent.Checked = true;
     else
      parent.Checked = false;
    }
   }//如果等于null,說(shuō)明選擇的是根節(jié)點(diǎn)
   else
   {
    foreach (TreeNode child in node.Nodes)
    {
     child.Checked = node.Checked;
    }
   }
   node.TreeView.AfterCheck += new TreeViewEventHandler(treeView_AfterCheck);
  }
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

上一篇:C#計(jì)算程序執(zhí)行過(guò)程花費(fèi)時(shí)間的方法

欄    目:C#教程

下一篇:C#獲取動(dòng)態(tài)生成的CheckBox值

本文標(biāo)題:C#中TreeView實(shí)現(xiàn)適合兩級(jí)節(jié)點(diǎn)的選中節(jié)點(diǎn)方法

本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/6971.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有