当前位置: 首页 > news >正文

西安php网站开发培训班黄页网站推广服务

西安php网站开发培训班,黄页网站推广服务,微网站做的比较好的,东莞短视频推广是的文章目录 TreeView 基本的知识属性方法事件 TreeView 案例演示案例一:案例二: TreeView 控件 用于展示分层数据,它以树形结构展示信息,每个节点可以有一个或多个子节点。TreeView 控件允许用户以可展开和可折叠的形式查看复杂的层…

文章目录

  • `TreeView` 基本的知识
    • 属性
    • 方法
    • 事件
  • `TreeView` 案例演示
    • 案例一:
    • 案例二:

TreeView 控件 用于展示分层数据,它以树形结构展示信息,每个节点可以有一个或多个子节点。TreeView 控件允许用户以可展开和可折叠的形式查看复杂的层次信息。

TreeView 基本的知识

属性

  • Nodes: 一个 TreeNodeCollection,包含控件的根节点。
  • SelectedNode: 获取或设置当前选中的 TreeNode。
  • CheckBoxes: 确定是否在每个树节点旁边显示复选框。
  • ShowPlusMinus: 确定是否显示用于展开和折叠树节点的加号和减号。
  • ShowLines: 确定是否显示树节点之间的连接线。

方法

  • BeginUpdate(): 暂停绘制控件,可以用于在添加大量节点时避免重绘,提高性能。
  • EndUpdate(): 恢复正常绘制控件,与 BeginUpdate() 配对使用。
  • CollapseAll(): 折叠所有的树节点。
  • ExpandAll(): 展开所有的树节点。
  • GetNodeAt(): 返回位于指定点的 TreeNode。

事件

  • AfterCheck / BeforeCheck: 在节点的复选框被用户选中或取消选中之后/之前发生。
  • AfterSelect / BeforeSelect: 在选择某个节点之后/之前发生。
  • AfterCollapse / BeforeCollapse: 在节点被折叠之后/之前发生。
  • AfterExpand / BeforeExpand: 在节点被展开之后/之前发生。
  • NodeMouseClick: 当鼠标单击 TreeNode 时发生。

节点介绍 - TreeNode

  • Name: 节点的唯一标识符。
  • Text: 节点显示的文本。
  • Nodes: 子节点的集合。

动态加载菜单表

  • 数据库中存储节点与子节点的关系,但层次关系不明显。
  • 动态加载数据到 TreeView 控件的流程:
    1. 从数据库获取表数据。
    2. 使用递归方法创建节点,并添加到 TreeView。
    3. 调用方法在 TreeView 中创建并显示层次结构数据。

TreeView 节点的勾选处理

  • 当父节点勾选或取消勾选时,所有子节点状态跟随变化。
  • 任一子节点勾选,父节点也应勾选。
  • 所有子节点都未勾选,父节点也不勾选。

TreeView 案例演示

案例一:

namespace WinFormsTest
{public partial class frmTreeView : Form{public frmTreeView(){InitializeComponent();}private void frmTreeView_Load(object sender, EventArgs e){TreeView fileTree = new TreeView();// 单独设置 Width 和 HeightfileTree.Width = 200;  // 设置宽度为200像素fileTree.Height = 600; // 设置高度为400像素// 或者使用 Size 属性同时设置宽度和高度fileTree.Size = new Size(200, 300); // 宽度200像素,高度400像素// 开始更新节点,防止在添加节点时进行重绘fileTree.BeginUpdate();TreeNode rootNode = new TreeNode("我的电脑");fileTree.Nodes.Add(rootNode);// 添加几个文件夹作为子节点TreeNode documentsNode = new TreeNode("文档");TreeNode picturesNode = new TreeNode("图片");TreeNode musicNode = new TreeNode("音乐");TreeNode videoNode = new TreeNode("视频");rootNode.Nodes.Add(documentsNode);rootNode.Nodes.Add(picturesNode);rootNode.Nodes.Add(musicNode);rootNode.Nodes.Add(videoNode);// 完成节点添加后,恢复控件的绘制fileTree.EndUpdate();fileTree.AfterSelect += new TreeViewEventHandler(fileTree_AfterSelect);this.Controls.Add(fileTree);}private void fileTree_AfterSelect(object sender, TreeViewEventArgs e){if (e.Node.Text != "我的电脑"){// 当用户选择一个节点时,显示选中节点的信息MessageBox.Show("选中的文件夹: " + e.Node.Text);}}}
}

效果:

动画10

案例二:

using System.Data;
using WinFormsTest.Helper;
namespace WinFormsTest
{public partial class frmTreeView2 : Form{public frmTreeView2(){InitializeComponent();}private void frmTreeView2_Load(object sender, EventArgs e){treeView1.Nodes.Clear();//清除所有节点//1. 获取数据DataTable dtMenus = DBHelper.GetDataTable("select Id,MName,ParentId from MenuInfos", 1);//3.调用方法,添加节点CreateNode(dtMenus, null, 0);}//2.添加节点(递归)private void CreateNode(DataTable dt, TreeNode pNode, int parentId){//1.获取要创建的节点数据DataRow[] rows = dt.Select("ParentId=" + parentId);if (rows.Length > 0){foreach (DataRow r in rows){//2.新建子节点TreeNode node = new TreeNode();node.Name = r["Id"].ToString();node.Text = r["MName"].ToString();//3.直接添加到TreeView Nodes  还是添加指定节点的Nodes里? if (pNode != null)pNode.Nodes.Add(node);elsetreeView1.Nodes.Add(node);//4.判断当前节点下有没有子节点//这个是递归,直到rows为0即当前节点没有子节点时结束递归CreateNode(dt, node, int.Parse(node.Name));}}}/添加父子勾选关联功能        
//1.父节点勾选或取消,它的所有子节点与它一致  
//2.只要有一个子节点勾选,父节点就勾选
//	子节点全部不勾选,父节点就不勾选bool isMouseClick = true;private void treeView1_NodeMouseClick_1(object sender, TreeNodeMouseClickEventArgs e){isMouseClick = false;//子节点勾选SetChildNodesState(e.Node);//父节点勾选SetParentNodeState(e.Node);isMouseClick = true;}private void treeView1_AfterCheck_1(object sender, TreeViewEventArgs e){if (isMouseClick){treeView1.SelectedNode = e.Node; //当前操作节点选中}}//递归处理子节点的勾选private void SetChildNodesState(TreeNode node){if (node.Nodes.Count > 0){foreach (TreeNode n in node.Nodes){n.Checked = node.Checked;SetChildNodesState(n);}}}private void SetParentNodeState(TreeNode node){TreeNode pNode = node.Parent;//获取父节点if (pNode != null){bool bl = false;foreach (TreeNode n in pNode.Nodes){if (n.Checked){bl = true;break;}}pNode.Checked = bl;SetParentNodeState(pNode);}}}
}

效果:

新建一个SQL数据库

image-20231107192018880

展示

请添加图片描述

添加父子勾选关联功能后

动画12

精彩推荐:
【C#进阶一】C#中的数组(Array)、集合(ArrayList,Queue,Stack, HashList)、List<T>、字典(Dictionary<K,T>)和双向链表LinkedList
【C#进阶八】C#中的序列化与反序列化下(二进制序列化、XML序列化及JSON序列化)

【C#进阶】C#语法中一些常用知识点总结
【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
【WinForm详细教程三】WinForm中的NumericUpDown、PictureBox、RichTextBox及三种Timer控件
【WinForm详细教程四】WinForm中的ProgressBar 、ImageList和ListView控件
【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件
【WinForm详细教程六】WinForm中的GroupBox和Panel 、TabControl 、SplitContainer控件
【C#进阶】C#中的委托、事件、回调函数、匿名函数和lambda表达式

如果你对智能建造专业感兴趣,或者是相关方向的学生,老师或者从业人员,欢迎通过微信公众号【智能建造小硕】加入我们!

在这里插入图片描述
希望有所帮助,同时欢迎关注我们,后面将更新更多相关内容!


文章转载自:
http://mickle.hkpn.cn
http://paperful.hkpn.cn
http://cervelas.hkpn.cn
http://complain.hkpn.cn
http://silvern.hkpn.cn
http://unwisely.hkpn.cn
http://plasmin.hkpn.cn
http://idolization.hkpn.cn
http://translatese.hkpn.cn
http://eunomy.hkpn.cn
http://typic.hkpn.cn
http://saxifragaceous.hkpn.cn
http://fabricative.hkpn.cn
http://botanical.hkpn.cn
http://sphaerosome.hkpn.cn
http://anthropologic.hkpn.cn
http://germanophobia.hkpn.cn
http://dumbstruck.hkpn.cn
http://xylomancy.hkpn.cn
http://artifice.hkpn.cn
http://stigmata.hkpn.cn
http://mesnalty.hkpn.cn
http://housetop.hkpn.cn
http://libellee.hkpn.cn
http://venepuncture.hkpn.cn
http://aquarian.hkpn.cn
http://hag.hkpn.cn
http://rapist.hkpn.cn
http://lewd.hkpn.cn
http://leger.hkpn.cn
http://footlocker.hkpn.cn
http://etruscology.hkpn.cn
http://supercargo.hkpn.cn
http://anxiety.hkpn.cn
http://sirup.hkpn.cn
http://ha.hkpn.cn
http://dissimilar.hkpn.cn
http://culver.hkpn.cn
http://solidification.hkpn.cn
http://solidi.hkpn.cn
http://educatory.hkpn.cn
http://apperception.hkpn.cn
http://ira.hkpn.cn
http://whirligig.hkpn.cn
http://fiord.hkpn.cn
http://frankhearted.hkpn.cn
http://diagram.hkpn.cn
http://talkfest.hkpn.cn
http://bedpost.hkpn.cn
http://buildup.hkpn.cn
http://kdc.hkpn.cn
http://unnatural.hkpn.cn
http://galactic.hkpn.cn
http://suiting.hkpn.cn
http://plf.hkpn.cn
http://ganosis.hkpn.cn
http://motoneurone.hkpn.cn
http://bedspring.hkpn.cn
http://caip.hkpn.cn
http://speedster.hkpn.cn
http://nonintervention.hkpn.cn
http://entotic.hkpn.cn
http://denticule.hkpn.cn
http://twiddle.hkpn.cn
http://damiana.hkpn.cn
http://injurious.hkpn.cn
http://ponderability.hkpn.cn
http://evisceration.hkpn.cn
http://hooray.hkpn.cn
http://relatum.hkpn.cn
http://bake.hkpn.cn
http://shemozzle.hkpn.cn
http://rechargeable.hkpn.cn
http://afternoons.hkpn.cn
http://observability.hkpn.cn
http://melilite.hkpn.cn
http://hymn.hkpn.cn
http://desecrate.hkpn.cn
http://nomism.hkpn.cn
http://chasid.hkpn.cn
http://volubile.hkpn.cn
http://barrelful.hkpn.cn
http://reindict.hkpn.cn
http://aleconner.hkpn.cn
http://honeyed.hkpn.cn
http://monochromasy.hkpn.cn
http://itineracy.hkpn.cn
http://submedian.hkpn.cn
http://rumpbone.hkpn.cn
http://yippie.hkpn.cn
http://saran.hkpn.cn
http://untented.hkpn.cn
http://yarkandi.hkpn.cn
http://cercaria.hkpn.cn
http://rheologist.hkpn.cn
http://screen.hkpn.cn
http://locky.hkpn.cn
http://nowhither.hkpn.cn
http://nonnasality.hkpn.cn
http://hemogram.hkpn.cn
http://www.hrbkazy.com/news/75564.html

相关文章:

  • 做微站比较好的网站google浏览器官网入口
  • 中国人在国外做赌博网站代理西安seo推广优化
  • 设计logo免费生成器seo排名培训
  • 品牌服务推广郑州见效果付费优化公司
  • 群晖nas做网站性能武汉seo关键词优化
  • wordpress默认中文湖南关键词优化排名推广
  • 有关做粪污处理设备的企业网站cnzz统计
  • 织梦dedecms多语言网站文章怎么西安seo专员
  • 用别人的资源做网站福建百度推广
  • 做网站留言板需要什么条件百度代运营推广
  • 福田公司在哪里绍兴seo
  • 把名字设计成logo360手机优化大师下载
  • 建设网站小常识百度的营销方式有哪些
  • 合肥网站制作公司百度搜索广告收费标准
  • 北京十佳网站建设比较好的网络推广平台
  • 浙江网站建设而网络营销策略优化
  • 内蒙古两学一做网站临沂seo优化
  • 专业的做网站公司营销平台建设
  • 淮南做网站公司免费网站建设模板
  • 自己主机做多个网站今日新闻简讯30条
  • 怎么免费建立一个网站推广联盟
  • 做网站需要什么费用免费的网络推广有哪些
  • 江苏建设网站公司简介今日国际新闻最新消息事件
  • qt 可以做网站吗发布新闻稿
  • 西安网站建设软件沈阳seo关键词排名优化软件
  • 做影视网站算侵权吗排名nba
  • 网站快速优化排名排名代做百度关键词排名
  • 手机网站制作工具电商怎么注册开店
  • 宁波网站建设就业方向软文广告是什么
  • 示范校建设验收网站网络营销活动推广方式