C# TreeView定位节点

2025-05-18 11:42:18

1、添加三个控件:RichTextBox,Button,TreeView思路:1.查询输入的条件在数据库里有没有,如果没有提示没有2.如果有,把此结果保存下来3.取出结果里的第一条记录,并定位(更改查找到的节点的字体颜色为红色),再把结果中已经查询到的记录删除(避免重复查询到同一个结果)4.如果用户没有更改搜索条件,直接点击搜索,则跳到第3步,直到搜索完毕5.如果用户更改搜索条件,则跳到第2步

2、部分代码如下:#region 内部字段,查询用 /// <summary> /// 保存查询到的节点的Color信息,用于还原 /// </summary> private Color _queryColor { get; set; } /// <summary> /// 保存查询的数据 /// </summary> private DataTable _dtQueryNode { get; set; } /// <summary> /// 保存查询的条件 /// </summary> private string _queryString { get; set; } /// <summary> /// 查询状态 true:查询条件改变,false查询条件没变 /// </summary> private bool _queryStatu { get; set; } #endregion

C# TreeView定位节点

4、/// <summary> /// 加载类型名称,递归全部加载 /// 争犸禀淫</summary> /// <param name=媪青怍牙"_typeParentID">父节点</param> /// <param name="treeNode">TreeNode</param> /// <returns></returns> private void loadType(int _typeParentID,TreeNode treeNode) { this.Text = ConfigurationManager.AppSettings["appName"]; // treeNode.Nodes.Clear(); DataTable dt = PictureDbOperator.GetDataSet( string.Format("select type_id,type_name from type where type_parent_id={0} order by type_name", _typeParentID)); if (dt.Rows.Count>0) {//检查是否有类型数据 TreeNode tn = null; //读取数据,并写入treeview foreach (DataRow item in dt.Rows) { tn = new TreeNode(item["type_name"].ToString()); tn.Name = item["type_id"].ToString(); //节点下有图片,这个用于判断是否是图片 tn.Tag = "T"; loadType(int.Parse(item["type_id"].ToString()), tn); treeNode.Nodes.Add(tn); } } }

C# TreeView定位节点

6、/// <summary> ///按钮Click事件搜索类型,并重新显示到树结构里 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Search_Click(object sender, EventArgs e) { //还原被改变为node if (_queryColor != null && treeView_Type.SelectedNode != null) { treeView_Type.SelectedNode.ForeColor = _queryColor; } //如果查询条件不为空且查询条件不变时,更改状态为false,表示没有更改条件 _queryStatu = (_queryString != "" && _queryString == richTextBox_Search.Text.Trim()) ? false : true; loadType(richTextBox_Search.Text.Trim()); }

C# TreeView定位节点

8、数据库表TypeCREATE TABLE [dbo].[Type] ( [type_id] INT IDENTITY (1, 1) NOT NULL, [type_name] NVARCHAR (500) NULL, [type_mem] NVARCHAR (50) NULL, [type_parent_id] INT NOT NULL);

C# TreeView定位节点
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢