TreeView控件在C#应用程序中的应用研究

时间:2022-08-15 10:48:38

TreeView控件在C#应用程序中的应用研究

摘 要:详细介绍了使用TreeView控件的图书信息系统多级书目节点动态实现方法,在实现与图书信息数据库的连接后,能够实现一个完整的图书信息管理系统。

关键词:C#;TreeView控件;多级书目节点;图书信息系统

中图分类号:TP301 文献标识码:A 文章编号:16727800(2012)011004102

________________________________________

作者简介:邹治军(1976-),男,硕士,南京化工职业技术学院信息技术系讲师,研究方向为智能检测与智能控制。0 引言

在.NET应用程序中,TreeView控件用来显示节点(TreeNode)对象的级层结构,通常用于显示一些有等级结构的信息,例如Windows资源管理器左边显示文件和文件夹的窗口。本文以简易电子图书信息系统开发为背景,详细论述了C#应用程序中,使用TreeView控件的电子图书信息系统的多级书目动态生成方法。

1 应用程序界面设计

运行VS2010,新建C# Windows应用程序项目。

(1)添加程序窗体,进行属性设置。

(2)添加和设置SplitContainer控件。在上一步添加的窗体中拖入一个SplitContainer控件,设置相应属性值。SplitContainer控件是由两个Panel面板和一个Split拆分条组成的复合体,拥有两个面板可以聚合不同区域中的信息(一个面板的选择决定了另一个面板显示的内容)。

(3)添加TreeView控件。TreeView控件按树形结构来显示标记项的分层集合,每一个标记项用一个TreeNode来表示。在SplitContainer.Panel1中添加一个TreeView控件,设置其Dock属性为fill。

(4)添加ListView控件。在SplitContainer.Panel2中添加一个ListView控件,设置其Dock属性为fill。当选中某一个节点后,在ListView控件中显示对应的信息。

2 程序代码实现

创建Access2003数据库,编辑保存多级图书目录节点信息,如图1所示。

(1)导入数据库db1.mdb,使用Using 语句引入OleDb的命名空间,代码如下:

图1 书目节点数据库

using System.Data.OleDb;

(2)数据库的连接字符串代码:

String connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";

(3)使用Connection对象与数据源建立连接之后,使用Command对象来对数据源执行查询等各种操作。

private void Form1_Load(object sender, EventArgs e)

{

initTree();

}

private void initTree()

{

string connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";

OleDbConnection con = new OleDbConnection();

con.ConnectionString = connectionstring;

con.Open();

String sql = "select ID,NodeName from TreeView where Node_Parent_ID=0";

OleDbCommand com = new OleDbCommand();

com.Connection = con;

mandText = sql;

OleDbDataReader sdr = com.ExecuteReader();

while (sdr .Read())

{

string nodeText = sdr["Node_Name"].ToString();

TreeNode tn = new TreeNode(nodeText);

tn.Tag = sdr["Node_ID"].ToString();

tn .Nodes .Add (new TreeNode() );

this.treeView1.Nodes.Add(tn);

}

con.Close();

}

(4)TreeView1的AfterSelect事件,在选定树结点后发生的事件,代码如下:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

initDri(e.Node);

}

private void initDri(TreeNode tn)

{

tn.Nodes.Clear();

string connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";

OleDbConnection con = new OleDbConnection();

con.ConnectionString = connectionstring;

con.Open();

String sql = "select Node_ID,Node_Name from TreeView where Node_Parent_ID=" + tn.Tag;

OleDbCommand com = new OleDbCommand();

com.Connection = con;

mandText = sql;

OleDbDataReader sdr = com.ExecuteReader();

while (sdr.Read())

{

string nodeText = sdr["Node_Name"].ToString();

TreeNode tn1 = new TreeNode(nodeText);

tn1.Tag = sdr["Node_ID"].ToString();

tn1.Nodes.Add(new TreeNode());

tn.Nodes.Add(tn1);

}

}

图2 程序运行效果

3 结语

本文着重介绍了使用TreeView控件动态生成图书信息系统多级书目的方法,其它功能可在此基础上进一步补充与完善,在最终实现与图书信息数据库的连接后,可以实现一个完整的图书信息管理系统。

参考文献:

[1] 赵会东,王小科.C#开发之道[M].北京:电子工业出版社,2011.

[2] 齐立波.C#于入门经典[M].北京:清华大学出版社,2010.

上一篇:基于Asp.net三层构架的医药公司综合管理系统设... 下一篇:信息系统技术保障中的应用开发