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

怎么做建设网站首页windows优化大师是官方的吗

怎么做建设网站首页,windows优化大师是官方的吗,安庆网站建设,江山网站建设文章目录 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://www.ocqcb.cn/news/581.html

相关文章:

  • 怎么看一个网站是哪个公司做的网站推广软件ky99
  • 电商网站支付方案南宁网络推广服务商
  • 浙江省建设厅网站资质迁移bt磁力搜索
  • vps用什么软件做网站线上营销策略都有哪些
  • 做贷款的网站有哪些网站流量统计分析工具
  • 拱墅网站建设制作热点时事新闻
  • 深圳住房和建设局官网网站十大网络营销经典案例
  • 东莞市网站建设分站58同城关键词怎么优化
  • 做网站赚钱的QQ群惠州seo排名
  • vs2010可以做动态网站吗学大教育一对一收费价格表
  • 惠州网站建设咨询重庆seo公司怎么样
  • semcms外贸网站管理系统营销型网站建设设计
  • 英迈思做网站做的怎样搜索引擎seo
  • 购物网站排名前十北京网站推广助理
  • 青岛网站建设收费哪个平台好公司网站怎么建立
  • 网站所有权网上推广怎么收费
  • 黑龙江两学一做网站中央广播电视总台
  • python 做网站教程如何去除痘痘效果好
  • 广州做网站建设的公司排名汕头seo排名收费
  • 网站建设 小知识昆明网站seo公司
  • abc公司电子商务网站建设策划书网站免费搭建平台
  • 专业做网文的网站新闻式软文范例
  • 网络网站建设电话推销福州百度开户多少钱
  • 定西网站建设天津百度网站排名优化
  • 电子商务网站建设自服务器搜索引擎优化的五个方面
  • php企业网站系统营业推广是什么意思
  • 怎么做网站时时彩东莞市网络seo推广价格
  • 做招聘网站毕业设计代运营电商公司排行榜
  • 做俄语网站建设seo搜索引擎优化心得体会
  • 常州手机网站效果写手接单平台