当前位置:文档之家› vb TreeView 控件应用实例

vb TreeView 控件应用实例

vb TreeView 控件应用实例
vb TreeView 控件应用实例

vb TreeView 控件应用实例

2009-11-14 20:52

TreeView 控件应用实例:将 TreeView 绑定到 Biblio.mdb 数据库

应用示例:DataTree.vbp

本章的代码示例是从应用示例 DataTree.vbp which is listed in the Samples directory 中得到的。

可将数据库中的数据绑定到 TreeView 控件。下面的示例将 TreeView 控件绑定到 Biblio 数据库,该数据库可以在 Visual Basic CD 中找到。该应用实例将 Publishers 表作为树节点的第一层。如果一个出版商对应于一个或多个书名,则这些书名将作为该出版商的子节点加入树中。

图 2.42 与数据绑定的 TreeVew 控件

下面的代码用到了如下对象:

Data Access Object Library(3.5)

名为“frmDataTree”的 Form 对象

名为“tvwDB”的 TreeView 控件

名为“cmdLoad”的 CommandButton 控件

将 Biblio.mdb 数据库绑定到 TreeView 控件

在工程中添加对数据访问对象(DAO 3.0)的引用。

为 Database 和 Node 对象创建模块级的变量。

在 Form Load 事件中,用 OpenDatabase 语句将 Database 对象变量设置为 Biblio 数据库。

用 Nodes 集合的 Add 方法创建顶层的节点对象。

在 CommandButton 的 Click 事件中,创建两个 Recordset 变量,并将它们设置为Publishers 和 Titles 表。

用“Do Until”语句为表中的每个出版商创建一个 Node 对象。

对每个出版商,在 Titles 记录集中检查匹配的 PubID 字段;为每个匹配项添加一个子节点。

在工程中添加对数据访问对象(DAO 3.5)的引用

要将数据库绑定到 TreeView 控件,必须先添加对当前版本的数据访问对象(DAO)的引用。

为 Database 对象和 Node 对象创建模块级的变量

由于需要在一个会话中多次访问 Biblio.mdb 数据库,如果创建一个模块级的 Database 对象,保持一个打开数据库,将有助于提高效率。此后,不需要打开数据库即可访问它。在窗体的声明部分,键入如下内容:

Private mDbBiblio As Database

如果希望该数据库还可被其它模块使用,可以用 Public 语句,并重命名该变量,以表明它是全局的,例如 gDbBiblio。

在创建 Node 对象时,在 Set 语句中(如下所示)使用 Node 类型的变量。

Dim TempNode As Node

Set TempNode = tvwDB.Nodes.Add()

虽然可以在添加 Node 对象时创建变量,更有效的方式是声明一个模块级的 Node 对象变量,并用它创建所有的 Node 对象。在上述声明部分再键入:

Private mNode As Node

用 OpenDatabase 语句将 Database 对象变量设置为 Biblio 数据库

Form 对象的 Load 事件中可以初始化 Database 变量。代码如下:

Set mDbBiblio = DBEngine.OpenDatabase("BIBLIO.MDB")

在成功地初始化 Database 对象变量后,就可以在该模块的代码中的任何位置自由地访问它了。

Form Load 事件:用 Nodes 集合的 Add 方法创建顶层的 Node 对象

至此,Database 对象变量已经被初始化为 Biblio 数据库,现在可以创建树中的第一个节点,并将打开的数据库的名称赋予它。首先必须用 Node 集合的 Add 方法创建第一个 Node 对象。还要使用 Set 语句将其赋给 mNode 对象变量,如下所示:

Set mNode = tvwDB.Nodes.Add() ' 创建第一个节点。

mNode.Text = https://www.doczj.com/doc/502469339.html,

注意,在上面的代码中,在创建 Node 的同时用 Set 语句将其赋给了 mNode 对象变量。由于 mNode 变量现在包含了新创建的 Node 对象,可以对该 Node 对象的属性进行赋值。在上述情况下,Database 的名称(即 Database 对象的 Name 属性)已经被赋给了新节点的Text 属性。

CommandButton Click 事件:创建两个 Recordset 变量,并将它们分别设置为 Publishers 和 Titles 表

本应用实例假定存在名为“cmdLoad”的按钮,并且当用户单击它时,置入 Biblio 数据库中的两个表到 TreeView 控件中。为此,必须首先在该按钮的 Click 事件中声明两个 DAO 对象变量。第一个变量 rsPublishers 用来包含 Publishers 表。第二个变量 rsTitles 用来包含 Titles 表。下面的代码声明了这两个变量,并用 OpenRecordSet 方法将表赋给变量:

Dim rsPublishers As Recordset

Dim rsTitles As Recordset

Set rsPublishers = mDbBiblio. _

OpenRecordset("Publishers", dbOpenDynaset)

Set rsTitles = mDbBiblio. _

OpenRecordset("titles", dbOpenDynaset)

用 Do Until 语句为表中的每个出版商创建一个 Node 对象

现在有两个打开的记录集,可以遍历每个记录集,创建 Node 对象,并为该对象的 Text 属性赋予合适的值。首先,必须遍历 Publishers 表,并为该表中的每个出版商创建一个 Node 对象。

下列简化了的代码可以用一句话概括为,“逐个处理每个记录,直到记录集的末尾:创建Node 变量,并将 Title 字段的值赋给其 Text 属性,移到下一记录并重复”:

Do Until rsPublishers.EOF

Set mNode = tvwDB.Nodes.Add(1, tvwChild)

mNode.Text = rsPublishers!Name

rsPublishers.MoveNext

Loop

注意,在上面的 Add 方法中用了两个参数。第一个参数(1)是我们希望添加入节点的 Node 的 Index 属性。也就是说,希望所有的出版商节点成为第一个(根)节点(在 Form 的 Load 事件中创建的)的子节点。第二个参数使用了常数 (tvwChild),该常数指定新的 Node 将成为编号为“1”的 Node 的子节点。

对每个出版商,在 Titles 记录集中检查匹配的 PubID 字段;为每个匹配项添加一个子节点

上面的代码将 Publishers 表的内容作为第一层填入 TreeView 中。然而,我们还希望能够

进入更深一层,为每个出版商节点增加子节点。每个子节点代表该出版商印刷的一本书。

为了做到这一点,如果有了对新创建的出版商节点 (mNode) 的引用,只要遍历 Titles 记录集,并检查每条记录的 PubID 字段即可。如果该字段与 Publishers 记录集中的 PubID 字段相匹配,则该书是由当前的出版商出版的。但是,在能够为 mNode 添加节点之前,还必须先将 mNode 的 Index 属性赋给一个变量 (intIndex),如下所示:

intIndex = mNode.Index

然后就可以在 Add 方法中使用该变量了,Add 方法需要用来加入子节点的 Node 对象的Index 属性:

Set mNode = tvwDB.Nodes.Add(intIndex, tvwChild)

如下简化的代码可被表述为“直到 Recordset 的结尾:创建子 Node 对象,并将 Title 字段的值赋给它的 Text 属性;移动到下一记录并重复上述操作”:

Do Until rsTitles.EOF

If rsPublishers!PubID = rsTitles!PubID Then

Set mNode = tvwDB.Nodes.Add(intIndex, tvwChild)

mNode.Text = rsTitles!Title 'Text 属性。

End If

Loop

完成代码

上面的代码显示了用两个相关的表填成一个表的基本策略。全部代码如下:

'必须设置对 DAO 3.5 的引用。

'在声明部分,声明模块级的对象变量:

Private mDbBiblio As Database

Private mNode As Node

Private Sub Form_Load()

'在 Form_Load 事件中,设置对象变量,

'并创建 TreeView 控件的第一个 Node 对象。

Set mDbBiblio = DBEngine.Workspaces(0). _

OpenDatabase("BIBLIO.MDB")

tvwDB.Sorted = True

Set mNode = tvwDB.Nodes.Add()

mNode.Text = "Publishers"

mNode.Tag = https://www.doczj.com/doc/502469339.html, '设置 Tag 属性。

mNode.Image = "closed" '设置 Image

'属性

End Sub

Private Sub cmdLoad_Click()

'声明 DAO 对象变量,

'并将记录集赋予它们。

Dim rsPublishers As Recordset

Dim rsTitles As Recordset

Set rsPublishers = mDbBiblio. _

OpenRecordset("Publishers", dbOpenDynaset)

Set rsTitles = mDbBiblio. _

OpenRecordset("titles", dbOpenDynaset)

'移到第一条记录。

rsPublishers.MoveFirst

Dim intIndex As Integer '用于索引的变量。

'直到最后一条记录 (EOF):添加一个 Node 对象,

'并用 Name 字段作为新

'Node 对象的文本。

Do Until rsPublishers.EOF

Set mNode = tvwDB.Nodes.Add(1, tvwChild)

mNode.Text = rsPublishers!Name

mNode.Tag = "Publisher" 'Tag 标识该表。

'为 Key 赋予唯一的 ID

mNode.Key = CInt(rsPublishers!PubID) & " ID"

'将变量 intIndex 设置为新创建 Node 的 Index 属性。 '用该变量将子 Node 对象加入当前 Node。

intIndex = mNode.Index

'对这条记录,在 Title 表中查找与 Titles 记录集

'中出现相同 PubID 的记录。如果找到这样的记录,

'则在 TreeView 控件中加入 Node 对象,并将用所

'找到记录的 Title、 ISBN 和 Author 字段为新

'Node 对象的属性赋值。

Do Until rsTitles.EOF

If rsPublishers!PubID = rsTitles!PubID Then

Set mNode = tvwDB.Nodes. _

Add(intIndex, tvwChild)

mNode.Text = rsTitles!Title '文本。

mNode.Key = rsTitles!ISBN '唯一的 ID。

mNode.Tag = "Authors" '表名。

mNode.Image = "leaf" '图象。

End If

rsTitles.MoveNext 'Titles 中的下一条记录。

Loop

'将 rsTitles 重新设置为 Titles 的第一条记录。

rsTitles.MoveFirst

'移动到下一条 Publisher 记录。

rsPublishers.MoveNext

Loop

End Sub

增加代码

使用 SQL 语句创建较小的“Titles”记录集,可以对这个示例加以改进。下面的代码创建只包含相同 PubID 值的记录的记录集:

Set rsTitles = mDbBiblio.OpenRecordset _

("select * from Titles Where PubID = " & _

rsPublishers!PubID)

然后该代码就只需对较小的记录集进行循环,因而效率比较高。修改后的代码如下:

Private Sub cmdLoad_Click()

Dim rsPublishers As Recordset

Dim rsTitles As Recordset

Set rsPublishers = mDbBiblio. _

OpenRecordset("Publishers", dbOpenDynaset)

Dim intIndex

Do Until rsPublishers.EOF

Set mNode = tvwDB.Nodes.Add(1, tvwChild)

mNode.Text = rsPublishers!Name

mNode.Tag = "Publisher" '标识表。

mNode.Key = rsPublishers!PubID & " ID"

mNode.Image = "closed"

intIndex = mNode.Index

'对这条记录,使用查询创建 Title 表的记录集,

'查询条件是所有包含相同 PubID 的记录。对结果记录集中

'的每一条记录,在 TreeView 控件中加入一个 Node 对象,

'并用记录的 Title、 ISBN 和 Author 字段为新

'Node 对象的属性赋值。

Set rsTitles = mDbBiblio.OpenRecordset _

("select * from Titles Where PubID = " & _

rsPublishers!PubID)

Do Until rsTitles.EOF

Set mNode = tvwDB.Nodes. _

Add(intIndex, tvwChild)

mNode.Text = rsTitles!TITLE '文本。

mNode.Key = rsTitles!ISBN '唯一的 ID。 mNode.Tag = "Authors" '表名。

mNode.Image = "smlBook" '图象。

'移动到 rsTitles 中的下一个记录。

rsTitles.MoveNext

Loop

'移动到下一个 Publishers 记录。

rsPublishers.MoveNext

Loop

End Sub

Access Treeview 应用实例

《Access Treeview 应用实例》 使用说明: 本程序可在各种支持VBA语言的软件上直接使用,其中MS Access已成功测试具体步骤为: 1、在Access里创建一个tblTreeview的数据表如下图: 2、在Access里创建一个frmTreeview的窗体,在窗体里创建一个Treeview1的Treeview控件和一个 ImageList1的ImageList控件如下图:

3、然后把程序复制到frmTreeview窗体的加载事件当中如下图: 4、最终效果如下图:

程序: Private Sub Form_Load() On Error Resume Next Dim strParent As String, strChild As String, MyNode As Node Me.Treeview1.Nodes.Clear '清除Treeview的所有旧节点 Me.Treeview1.ImageList =Me.ImageList1.Object '把图标加载到每个节点前面 Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblTreeview", dbOpenSnapshot, dbReadOnly) 'Treeview 节点数据来源 While Not rst.EOF strChild = rst!ChildID If rst!ChildID <> rst!ParentID Then strParent = Mid(rst!ParentID, 1, Len(rst!ParentID) - Len(rst!ChildID) - 1) Set MyNode = Me.Treeview1.Nodes.Add(strParent, tvwChild, rst!ParentID, rst!ChildID, "A1", "A3") '加载子节点 Else strParent = rst!ChildID Set MyNode = Me.Treeview1.Nodes.Add(, , strChild, rst!ChildID, "A1", "A3") '加载父节点End If rst.MoveNext Wend rst.Close '关闭数据集 Me.Treeview1.HideSelection = False '离开焦点后有阴影 End Sub

杠杆原理在经营预测与决策中的运用分析

目录 摘要 (1) 关键字 (1) 前言 (1) 一、经营杠杆 (2) (一)系数公式 (2) 1、概念 (2) 2、定义公式 (2) 3、公式推导 (2) (二)作用 (3) 1、案例 (3) 2、影响关系 (4) 3、经营杠杆在经营决策中的作用 (4) (1)反应经营情况 (4) (2)反应经营风险 (4) (3)预测未来业绩 (5) (4)用于未来的经营决策 ................................................................................................ 4、利益与风险.................................................................................................................... (1)经营杠杆利益............................................................................................................ (2)经营风险.................................................................................................................... 二、财务杠杆 .............................................................................................................................. (一)系数公式 (2) 1、概念 (2) 2、定义公式 (2)

VB控件 treeview用法详解

VB TreeView控件使用详解 (2012-06-16 15:08:16) 标签:分类: 第一小时:学习直接用代码将数据填充到树控件中。 为什么要先学习直接用代码将数据填充到树控件中因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将表中的数据填充到树控件中,在第一小时里,树控件和表完全没有关系。 目的:我们要在树控件中建立如下的一个3层级关系 水果 | |__苹果 | |__红富士 | |__国光 | |__葡萄 |__红提子 |__青提子 解释:水果包含2种,一种是苹果,一种是葡萄,苹果又包含2种,一种是红富士,一种是国光,葡萄也如此。 在这里:“爷”是水果,“父”是苹果,葡萄,“子”是红富士,国光,红提子,青提子。概括如下: 爷(只能有一个):水果 父(这里有2个):父1:苹果;父2:葡萄

子(这里有4个):子1:红富士(父1苹果的子);子2:国光(父1苹果的子);子3:红提子(父2葡萄的子);子4:青提子(父2葡萄的子) 1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist 如何找到这两个控件 Treeview控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Treeview Control,Version " Imagelist控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Imagelist Control,Version " Treeview控件大家都明白干什么用的,Imagelist控件是干什么用呢原来这个控件是放图标用的,如果你想在树控件中显示图标的,这个图标都将储存在ImageList控件中。 2、设置这两个控件的属性 首先要讲清楚控件的属性设置有2种,一种是设置这个控件在ACCESS中的属性,比如名称等。一种是设置这个控件本身的属性。要设置这个控件在ACCESS中的属性,选中控件后按鼠标右键选“属性”就可以了。跟我们平时设置文本框什么的一样。要设置这个控件本身的属性,只要双击这个控件就可以了。 1)设置Treeview控件在ACCESS中的名称属性,将名称设置为“Treeview" 2)设置Imagelist控件在ACCESS中的名称属性,将名称设置为“Image" 2)设置Imagelist控件本身的属性,双击控件后,在弹出来的设置框中选“Images",单击“Insert Picture"按钮,在你电脑中选择你需要的图标。在“Key:”栏中填入“K1”。其他默认设置不用改。3)设置Treeview控件本身的属性,双击控件后,在弹出来的设置框中选“General”,在这个选项面版中有很多项设置,大多数是设置树控件的显示格式,你自己慢慢研究。这里我们将第一项“Style"选7,在第五项“Imagelist"选项中将我们放置的Imagelist控件“Image"选上。这项设置就将图标和树控件联系了起来。 3、写代码将数据填充到树控件中

资金杠杆原理

资金杠杆原理 杠杆收购是指一个公司进行结构调整和资产重组时,运用财务杠杆,主要通过借款筹集资金进行收购的一种资本运营活动。 杠杆收购与一般收购的区别在于,一般收购中的负债主要由收购方的资金或其他资产偿还,而杠杆收购中引起的负债主要依靠被收购企业今后内部产生的经营效益、结合有选择的出售一些原有资产进行偿还,投资者的资金只在其中占很小的部分。通常为10%—30%左右。杠杆收购于本世纪60年代出现于美国,随后风行于北美和西欧。最初杠杆收购交易只在规模较小的公司中进行,但80年代以后,随着银行、保险公司、风险资本金等各种金融机构的介入,带动了杠杆收购的发展,又由于杠杆收购交易能使股票持有者和贷款机构获得厚利,还有可能使公司管理人员成为公司的所有者,因而发展很快。 杠杆收购的特点主要表现在:(1)收购者只需要投入少量的自有资金便可获得较大金额的银行贷款用以收购目标企业。(2)收购者可以通过杠杆收购取得纳税利益;资本的利息支出可在税前扣除,对于猎物企业,被购进前若有亏损,可递延冲抵收购后的盈利,从而减低应纳所得额基数。(3)高比例的负债给经营者、投资者以鞭策,促使其改善经营管理,提高经济效益。 要恰当地运用杠杆收购,必须在结合本公司情况对目标公司产业环境、盈利能力,资产构成及利用等情况进行充分分析的基础上,科学选择策略方式,合理控制筹资风险,从而优化各种资源配置,以实现资本增值最大化。 二、策略方式 作为杠杆收购的具体运用,有八种可供选择的策略方式。 第一,背债控股。即收购方与银行商定独家偿还猎物企业的长期债务,作为自己的实际投资,其中一部分银行贷款作为收购方的资本划到猎物方的股本之中并足以达到控股地位。 第二,连续抵押。购并交易时不用收购方的经营资本,而是以收购方的资产作抵押,向银行争取相当数量的贷款,等购并成功后,再以猎物企业的资产作抵押向银行申请收购新的企业贷款,如此连续抵押下去。 第三,合资加兼并。如果收购企业势单力薄,可依靠自己的经营优势和信誉,先与别家合资形成较大资本,然后再去兼并比自己大的企业。 第四,与猎物企业股东互利共生。猎物企业若是股份公司,则其大股东往往成为收购企业以利争取的对象。给其有关好处以取得其支持,购并交易往往能起到事半功倍的效果。

treeview控件应用

树形结构控件TreeView TreeView是一种 能以树形目录结构形式 显示数据的高级控件, 显示方式类似于 Windows的资源管理 器,能分层展开各结点 的子目录,也能收缩各 结点的子目录。本节将 先介绍TreeView控件 的一些基本概念、属性 与方法,再举例说明 TreeView控件的应用。 TreeView控件概述、属性与方法 1、作用:用于显示Node结点的分层列表。 2、添加到控件箱 菜单命令:工程 | 部件,在部件对话框中选择:Microsoft Windows Common Controls 6.0 3、TreeView控件的属性 (1)属性对话框 用鼠标右键单击TreeView 控件,在弹出式菜单中选择属 性,进入属性设置对话框,该 对话框分为通用、字体、图片 三个选项卡,如图8.6所示。

①样式(Style):返回或设置在Node结点之间显示的线样式,如表8.6所示。 ②鼠标指针(MousePoint):可选择不同鼠标样式,如表8.1所示。 ③线条样式(LineStyle):0-tvwTreeLine 无根结点的树形结构,1-tvwRootLines有根结点的树形结构。 ④标签编辑(LabelEdit):0-tvwAutomatic 自动,1-tvwManual 手工; ⑤图像列表(ImageList):结点图标所用ImageList控件; ⑥边框样式(BorderStyle):0-ccNone无边框,1-ccFixedSingle单边框; ⑦外观(Appearence):0-ccFlat平面效果,1-cc3D 3D效果; ⑧缩进:父子结点的水平间距。 (2)其它属性 ①SelectedItem.Text属性:用于返回或设置当前Node结点的内容。 ②CheckBoxes属性:该属性只能取逻辑值,若取True值,则每个Node结点前出现一个复选框,否则不出现复选框。 4、TreeView控件的方法 (1)Node结点 ①Node结点:是TreeView控件中的一项,它包含图像与文本。 ②Nodes结点集合:包含一个或多个Node结点。 (2)Add方法 ①作用:为TreeView控件添加节点和子节点。 ②定义格式 TreeView1.nodes.Add(Relative,Relationship,Key,Text, Image,SelectedImage) 其中: ◆Relative参数:添加新结点时,其父结点键值Key。添加根结点时,此项为空。 ◆Relationship参数:新结点的相对位置: tvwlast—1:新节点位于同级别所有节点之后; tvwNext—2:新节点位于当前节点之后; tvwPrevious—3:新节点位于当前节点之前; tvwChild—4:新节点成为当前节点的子节点。 ◆Key:Node结点关键字(唯一标识符),用于检索Node结点。同时也作为其新建子结点的Relative值,即新建子结点的Relative=父结点Key。 ◆Text:Node结点文本。 ◆Image:Node结点位图,是关联ImageList控件中位图的索引。

杆秤上的杠杆原理

杆秤上的杠杆原理 学了杠杆原理,大家都知道杠杆在动力和阻力的共同作用下,当动力×动力臂=阻力×阻力臂时杠杆处于平衡状态。在我们的实际生活中,有很多地方都是运用了杠杆平衡的原理,比如生活中的垃圾桶、指甲剪等等,从古至今,人们运用杠杆原理的实例比比皆是。 在我们的日常生活中,我们的称量工具中有一种是杆秤,虽然现在生活中好多地方都是用到了电子称,但是在农村一些地方还是用到杆秤,而且许多小商贩在杆秤上做文章来愚弄人们,到底杆秤上有什么文章呢,今天我们这里就详细的分析一下杆秤上的知识 首先我们来认识一下杆秤(如图所示)杆秤是由秤钩(秤盘),秤杆,秤砣, 提绳(A 、B ),还有定盘星、秤杆上有刻度 回想我们在做杠杆平衡的实验时,为了便于在杠杆上读出力臂,为了避免杠杆自身的重量对实验的影响,我们要将杠杆调节在水平位置平衡,这里秤杆,秤钩有没有重量 呢? 答案是有的。那如果不排除这些因素的话,不是就不符合平衡条件了吗?我们怎么样测量物体的质量呢? 就在这种情况下,“定盘星”出现了,人们选择了杠杆上的某一个点作为零点,在这个位置上,如果将秤砣挂上去,不在秤钩上挂重物杆秤正好平衡(如图) 图中1F 表示秤钩(秤盘)的重力,2F 表示秤砣的重力,3F 表示秤杆的自身重力,对应的力臂分别为1L ,2L ,3L ,根据 杠杆平衡条件332211L F L F L F += 当挂上一个重力为G 的重物后,调整秤砣在秤杆上的位置,秤杆再次平衡(如图所示) 根据平衡条件 L F L F L G F 23311+=+)( 其中332211L F L F L F +=,如果用0L 表示秤砣拉线位置到定 盘星的距离,可以得到20L L L -= 12202)(GL L L F L F =-=,G F L F GL L 2 12 10= = 在更换重物G 的时候,拉绳到挂钩拉线处的距离1L 不变,秤砣的重力02G F =不变(0G 表示秤砣的重力),因此0L 与G 成正比,是一个线性关系,随着G 的增大,0L 也变大,且是均匀变化,这就是为什么杆秤上的距离是均匀的。 既然是距离,那为什么我们平时直接就是读出某个物体的质量是多少斤呢?我们仔细研究0L 和G 的关系,两个量是一一对应的,我们可以定义定盘星处的重力是0,0L 处对应的 ? 1 F 2 F 3 F G L 3 F 1F 2 F ? 1 L

delphi中TreeView控件使用

DELPHI中利用TreeView控件建立目录树2000-06-26 00:00:00·-·中国计算机报社 p>Rainbow的话:关于TreeView的使用,还可以参看:联合使用TreeView 组件 TreeView是一个显示树型结构的控件,通过它能够方便地管理和显示具有层次结构的信息,是Windows应用程序的基本控件之一。DELPHI虽然具有比较强大的文件管理功能,提供了多个用于文件管理的标准控件,如DriveComboBox、DirectoryListBox、FileListBox等,通过设置它们的属性,使其建立起联系,甚至不用编写一行程序,我们就可以实现在不同的目录之间进行切换,然而这样的目录切换只适用于进行文件的查找定位,而不能方便地进行目录的浏览,例如我们要从c:\windows目录转到c:\program files目录,就必须返回到根目录才能进行切换,而不能象Windows资源管理器那样任意地在不同的目录之间进行浏览与切换。 要实现在不同目录之间任意切换和浏览,还是需要使用TreeView控件,以下程序就利用DELPHI的TreeView控件来建立目录树。 在该程序中采用的各部件以及界面设计如下图所示: 各部件的主要属性设置如下: 部件属性属性值form name caption form1 ‘目录浏览’ drivecommbobox name visible drivecommbobox1 false filelistbox name visible filetype filelistbox1 false fddirectory imagelist name imagelist1 treeview name images 该程序利用DriveCommboBox控件来获得系统具有的驱动器,并以此作为目录树的最上层,利用FileListBox控件,通过设置其Filetype属性为fdDirectory,可以获得所需的子目录,在TreeView控件的OnExpanding事件中将得到的子目录加到该控件的某一节点下。

C_-TreeView控件使用方法

TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。 本文主要介绍C# treeView控件中,添加,修改、删除节点等c# treeview控件的使用方法。 其代码如下: 1.private void Form1_Load(object sender, EventArgs e) 2.{ 3. https://www.doczj.com/doc/502469339.html,belEdit = true;//可编辑状态。 4. 5.,这个结点是根节点。 6. TreeNode node = new TreeNode(); 7. node.Text = "hope"; 8. treeView1.Nodes.Add(node); 9. TreeNode node1 = new TreeNode(); 10. node1.Text = "hopeone"; 11. TreeNode node11 = new TreeNode(); 12. node11.Text = "hopeoneone"; 13. TreeNode node2 = new TreeNode(); 14. node2.Text = "hopetwo"; 15. node1.Nodes.Add(node11);//在node1下面在添加一个结点。 16. node.Nodes.Add(node1);//node下的两个子节点。 17. node.Nodes.Add(node2); 18. 19. TreeNode t = new TreeNode("basil");//作为根节点。 20. treeView1.Nodes.Add(t); 21. TreeNode t1 = new TreeNode("basilone"); 22. t.Nodes.Add(t1);

Treeview 控件的简单应用

Treeview 控件的简单应用: 在VB中Treeview 控件的添加: 通过VB菜单,[工程] -- [部件],然后勾选Microsoft Windows Common Controls 6.0 (SP6),[确定]。 在工具箱里就有了Treeview 控件的图标。 Treeview 控件具有显示类似目录层次结构的格式,在具体应用中很有实际意义。下面简单介绍。 一.在Treeview 控件中添加1个新节点: 在Treeview 控件中添加1个新节点,是通过Treeview 控件的Nodes 集合的Add方法添加一个Node 对象来实现的。 使用方法: Dim nodX As Node Set nodX = Treeview1.Nodes.Add(relative, relationship, key, text, image, selectedimage) 其中参数说明: Relative:可选的。已存在的Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数relationship 中找到。可以这样理解relative的作用,是新节点的位置的参照对象。 Relationship:可选的。指定的Node 对象的相对位置,如设置值中所述。本参数是相对参数relative而言。 Key:可选的。唯一的字符串,可用于用Item 方法检索Node。 Text:必需的。在Node 中出现的字符串。 Image:可选的。在关联的ImageList 控件中的图像的索引。 Selectedimage:可选的。在关联的ImageList 控件中的图像的索引,在Node 被选中时显示。 以上参数image和selectedimage,是设置节点文字左边的图形,以后详细举例说明。 例1: Set nodX = TreeView1.Nodes.Add(, , "R", "Root") 这是缺省了relative, relationship, image, selectedimage参数的实例,而key值用“R”,text 值用“Root”。 通常,缺省了relative, relationship的节点,是第1层节点。本例,生成了一个第1层节点,显示的文字为“Root”。 例2: Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1") nodX.EnsureVisible '这个方法EnsureVisible,使得新添加的子节点后,展开多层显示。 本例:relative为“R”,relationship为tvwChild,key为“C1”,text为“Child 1” 其功能是:建立1个新节点;该新节点是节点key值为“R”的子节点(tvwChild),而该新节点的key值用“C1”,text值用“Child 1”。 我们现在要为TreeView1控件添加新节点,可能有三种情况; 1)添加1个新的第1层节点。 Set nodX = TreeView1.Nodes.Add(, , "R1", "Root1")

ACCESS Treeview控件(树型控件)快速入门

Access 2003:Treeview控件(树型控件)快速入门(2010-06-01 14:26:08) 很多东西看起来很复杂,其实学起来还是蛮简单的。说这样的话不是“站着说话不腰疼”,而是切切实实的感受。很多时候我们会感到恍然大悟,之后便轻车熟路,信手拈来了,这就是前面所说的感觉,正所谓“山重水复疑无路,柳暗花明又一村”。 学这个Treeview控件也是一样。看起来它那么复杂,解释起来连篇累牍,但是我们需要的却往往只是其中一点,然后不断的重复使用这一点,仅仅这样,就能解决不少实际的问题。 使用Treeview的优点很多,比如具有无限扩展性,一个一个的分支,分支下面又可以增加次一级分支,每级分支又可以有很多并列的分支,这样就能满足多样的需求,另外,它还有很好的组织管理性,因为它具有明显的层级关系,很多人会用TreeView来做物料BOM表,可以说把这种特性发挥的淋漓尽致。 建立下面这样一个Treeview并不难,你只需要使用一句代码,多写几次就OK了。 不妨来看看代码,不过不用怕,记住,这里只有一句代码,其它的都在重复! Dim ndeindex As Node Set ndeindex = TreeView0.Nodes.Add(, , "a", "基础资料", "k1")

Set ndeindex = TreeView0.Nodes.Add("a", tvwChild, "a1", "品号资料维护", "k1") Set ndeindex = TreeView0.Nodes.Add(, , "b", "工时资料", "k1") Set ndeindex = TreeView0.Nodes.Add("b", tvwChild, "b1", "观测资料查询", "k1") Set ndeindex = TreeView0.Nodes.Add("b", tvwChild, "b2", "工时查询(依品号)", "k1") Set ndeindex = TreeView0.Nodes.Add("b", tvwChild, "b3", "工时查询(依其它条件)", "k1") Set ndeindex = TreeView0.Nodes.Add(, , "c", "产能模式", "k1") Set ndeindex = TreeView0.Nodes.Add("c", tvwChild, "c1", "FCST产能计算", "k1") Set ndeindex = TreeView0.Nodes.Add("c", tvwChild, "c2", "产能试算", "k1") Set ndeindex = TreeView0.Nodes.Add(, , "d", "成本模式", "k1") 所以,不用太多解释,你应该明白这个函数的参数的意思了吧?第一个参数是指它从属的上级,如果它就是顶级,那就空着;第二个参数表示当前这个是前面的那个上级的下一级,这是系统规定的,照抄就行;第三个参数是当前级别的代号;第四个参数就是当前级别的显示文字,想看到什么就写什么;最后一个是指当前级别前面的图,这个在imagelist控件中,如果你要用,就加这个控件,不用也行,就把这个参数空着。(如果要用,需要现在imagelist中插入图像,然后再treeview中指定使用这个imagelist,k1是在插入图像时指定的图像代号。如下图所示)

最新杠杆借力三个原理复习课程

杠杆借力三个原理(刘克亚) 如果你没有看过这篇文章,千万不要打算试着进行零投入,创建自己的事业!如果你想知道比尔盖茨是如何运用这个策略变成世界首富,请你阅读本篇文章!那些商业巨子是如何达到事业的顶峰的呢?肯定是运用这个策略才成功!除了吸引力原理、心理暗示原理,世界上最神秘的就是这个原理了!世界上的千万富翁、亿万富翁,无一不是运用这个策略而成功的! 简单的原理,却在整个人类历史演绎了无数传奇,造就了无数超级成功者!苏秦运用这个原理,连横六国,攻打强大的秦国;张仪运用这个原理,帮助秦国把六国逐一攻破,统一六国;运用这个原理,洛克菲勒建立了世界上最强大的石油王国;甚至奥巴马也运用了这个原理,利用了互联网这个世界上最强大的媒体武器,打败了希拉里,走进了白宫!

走进营销世界,在一万米高空看:杠杆借力原理,帮助了无数的企业创造了无数的销售奇迹!如果你要做营销,但是你却不懂得运用这个原理,你将意味着将会处在营销最黑暗的角落里死去,却无人知晓! 生活中,懂得运用杠杆借力原理,更是能让你如虎添翼,所向披靡!恋爱、谈判、社交、销售。。。。。。一切都不是问题!你将能够以更高更远的角度,更准确的视角来判断机遇,用最简单,最省力的方法达成目的! 这是令人最震撼的内容之一,每次在课堂上讲这个内容的时候,都会有3%的人激动得睡不着觉!是不是已经迫不及待了?下面我们就来揭示这个神秘杠杆借力三原理! 原理一:我想得到的东西,在这个世

界上都已经存在,并且至少有一个人已经得到! 根据这个原理,我们可以知道想要到这种东西,我们不必再创造,只需要找出来谁已经拥有,并且想办法跟他合作或者借过来用就可以了!比尔盖次之所以成为世界首富,不是因为他继承了很多财富,也不是他拥有什么样特别资源,而是因为他选择了软件-----这个世界上最大的趋势行业,以及他最会行销-----杠杆借力:其实他也没有发明视窗软件,而是从另外一个公司购买了DOS操作系统的使用权。然后他一开始也没有什么客户,那怎么办?他跑去IBM公司跟人家谈:把我的软件装到你们的电脑上面去,然后赚到钱了,你们分给我一部分就可以了!然后IBM的全球客户就全都变成了微软公司的客户了。这就是比尔盖次高明的地方,但是他更高明的地方在于,他在合同了保留了两点:一个是保留软件的升级权,第二个是保留合作权!然后同样的手法,他又可以去跟苹果电脑公司合作、康柏电脑公

delphi中treeview的使用

delphi中Treeview的使用介绍 每一个节点下子节点形成这一节点的Items属性,当前节点有一个唯一的Index(TreeNode的Index属性),用于说明子节点在Items 中的位置,每一个节点下的子节点是顺序编号的,第一个是0,第二个是1,依次类推。用IndexOf方法获得子节点的顺序,绝对顺序(AbsoluteIndex)则是指从Treeview第一个项开始的顺序值,第一个是0,如此推下去。Item属性则根据Index的值返回当前节点的第Index个子节点。Count则表明属于此项的所有子节点的数量。用MoveTo方法将Item由一个位置移到另一个位置。 Expanded属性表明是否所有的子项都全部展开(包括子项的子项),为True表示全部展开。IsVisible属性表明一个项是否在树中能被看到,如果树全部展开那么这个Item是肯定可以被看到。HasChildren属性表明一个项是否有子项。 GetFirstChild, GetLastChild, GetPrevChild, and GetNextChild分别返回当前项子项的第一个、最后一个和前一个、后一个项。GetNextSibling and GetPrevSibling则返回在同一Level下的下一个和上一个项。GetNextVisible and GetPrevVisible则返回能看得到的下一个和上一个项。如果一个节点有Parent,则HasAsParent方法返回True. Parent为当前项的父项。Focused属性确定焦点是否落在此节点上,被Focus时会一个标准的方框围住。很显然,只有一个节点会被聚焦。Selected属性表明一个节点是否被选中,同样只有一个节点会被选中。DropTarget属性表明节点在拖动操作中是源还是目标。

delphi中TreeView控件使用

DELPHI中利用TreeView控件建立目录树 p>Rainbow的话:关于TreeView的使用,还可以参看:联合使用TreeView组件 TreeView是一个显示树型结构的控件,通过它能够方便地管理和显示具有层次结构的信息,是Windows应用程序的基本控件之一。DELPHI虽然具有比较强大的文件管理功能,提供了多个用于文件管理的标准控件,如DriveComboBox、DirectoryListBox、FileListBox等,通过设置它们的属性,使其建立起联系,甚至不用编写一行程序,我们就可以实现在不同的目录之间进行切换,然而这样的目录切换只适用于进行文件的查找定位,而不能方便地进行目录的浏览,例如我们要从c:\windows目录转到c:\program files目录,就必须返回到根目录才能进行切换,而不能象Windows资源管理器那样任意地在不同的目录之间进行浏览与切换。 要实现在不同目录之间任意切换和浏览,还是需要使用TreeView控件,以下程序就利用DELPHI的TreeView控件来建立目录树。 在该程序中采用的各部件以及界面设计如下图所示: 各部件的主要属性设置如下: 该程序利用DriveCommboBox控件来获得系统具有的驱动器,并以此作为目录树的最上层,利用FileListBox控件,通过设置其Filetype属性为fdDirectory,可以获得所需的子目录,在TreeView控件的OnExpanding事件中将得到的子目录加到该控件的某一节点下。 整个程序的源代码如下: unit main;

interface uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,FileCtrl,ComCtrls,ImgList; type TForm1=class(TForm) DirTreeView:TTreeView; FileListBox1:TFileListBox; DriveComboBox1:TDriveComboBox; ImageList1:TImageList; procedure FormCreate(Sender:TObject); procedure DirTreeViewExpanding(Sender:TObject;Node:TTreeNode;var AllowExpansion:Boolean); private {Private declarations} public {Public declarations} end; var Form1:TForm1; implementation {$R*.DFM} procedure TForm1.FormCreate(Sender:TObject); var FirstNode,DirNode:TTreeNode; ItemCount,Index:integer; Itemstr:string; begin ItemCount:=DriveComboBox1.Items.Count;//所有驱动器的个数 FirstNode:=DirTreeView.Items.GetFirstNode; for index:=0to ItemCount-1do begin ItemStr:=DriveComboBox1.Items[index]; ItemStr:=copy(ItemStr,1,pos(:,ItemStr));//获得驱动器的名称(比如C/D) DirNode:=DirTreeView.Items.AddChild(FirstNode,ItemStr); DirNode.HasChildren:=true; DirNode.ImageIndex:=0; DirNode.SelectedIndex:=1; end; end; //响应扩展事件 procedure TForm1.DirTreeViewExpanding(Sender:TObject;Node:TTreeNode;Var AllowExpansion:Boolean); var

TreeView属性和方法

TreeView属性和方法 1.常用的几个属性和方法 ~Index 获取树节点在树节点集合中的位置。 ~Nodes 获取分配给树视图控件的树节点集合。 ~Parent 获取或设置控件的父容器。 ~SelectedNode 获取或设置当前在树视图控件中选定的树节点。 ~ExpandAll 展开所有树节点。 ~Checked 获取或设置一个值,用以指示树节点是否处于选中状态。 ~Text 获取或设置在树节点标签中显示的文本。 ~Expand 展开树节点。 ~Clear 清空树 ~Remove 从树视图控件中移除当前树节点。 以上由其他网友总结,补充: ~Height 控件的高度 ~Width 控件的宽度 ~BackColor 背景颜色 ~BorderColor 边框颜色 ~BorderStyle 边框样式 ~BorderWidth 边框宽度 ~CssClass 应用于该控件的CSS类名 ~ExpandedImageUrl 展开时显示的节点图标 ~ImageUrl 未选择或展开是显示的节点图标 ~SelectedImageUrl 选中状态下显示的节点图标 ~Indent 缩进距离,只有在ShowLines设为TRUE时才生效。 ~ShowLines 是否显示层级连接线 ~ShowPlus 是否显示+/-符号按钮 ~ShowToolTip 在有父节点上显示工具提示(+/-号的使用展开/关闭)。 ~AccseeKey 控件使用的键盘快捷键 ~AutoSelect 为TRUE时,当用键盘移动节点时,自动选择新节点 ~AutoPostBack 当改变状态时,自动回存 ~Enabled 控制控件的启用状态 ~EnableViewState 控件是否自动保存其状态以用于往返行程 ~ExpandLevel 初始化控件是展开节点的层数 ~SelectExpands 当选中一个接点时,是否自动展开该节点 ~TabIndex TAB键次序 ~Visible 控件是否可见 2.实用技巧: 1)怎样点击文字(不是+/-号)即可展开(收缩)子节点 将TREE的ShowToolTip 属性设为false即可。 2)当鼠标指到某父接点时,如何不显示显示“节点名:user +/- to expand/collapse”将TREE的SelectExpands 属性设为TRUE即可。

利用TreeView控件实现应用程序的导航

2012年 12月08日 实验类型__验证性__ 实验室_软件实验室二__ 一、实验题目 利用TreeView控件实现一个应用程序的导航 二、实验目的 通过本次实验,使学生进一步掌握https://www.doczj.com/doc/502469339.html,编程模型,掌握树形数据的存储方法,掌握TreeView控件与树形数据的操作,能够搭建一个系统的运行框架,为课程设计做好准备。 三、实验内容 1.设计树形结构的数据库表 2.实现树形数据和TreeView的绑定 3.能够实现应用程序导航的自定义 4.用.NET分层架构设计。 四、实验代码(注明代码所实现的功能) 1.数据库说明:4个表 (1)gg_user:user_id,user_name,user_pwd; gg_codeformat:id,BMMC,BMLX,BMZ;

ht_GoucheHT: DJBM,ZDLX,HTJE,ZDR,SHR;(表中信息通过程序添加) gg_menu:typeid, parid, FullName, Form, isStop, isGroup; gg_HolAuth:user_id,Typeid. 2.TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录。TreeView控件中的各项信息都有一个与之相关的Node对象。TreeView显示Node对象的分层目录结构,每个Node对象均由一个Label对象和其相关的位图组成。在建立TreeView控件后,我们可以展开和折叠、显示或隐藏其中的节点。TreeView控件一般用来显示文件和目录结构、文档中的类层次、索引中的层次和其他具有分层目录结构的信息。。 ‘树形结构的初始化函数 Sub InitTree() Me.TreeView1.Nodes.Clear() Dim dr As SqlClient.SqlDataReader dr = o.getall2dr Dim myTreeNode As TreeNode While dr.Read If o.getQX("001", dr!typeid) = True Then myTreeNode = New TreeNode myTreeNode.Text = dr!FullName https://www.doczj.com/doc/502469339.html, = dr!typeid If dr!isGroup = "0" Then myTreeNode.Tag = dr!Form Else myTreeNode.Tag = "" End If

财务杠杆原理及其运用与典型案例分析资料报告—论文设计终稿子

毕业设计(论文) 题目:财务杠杆原理及其运用与典型 案例分析 学生: X X 指导老师: X X X 系别:管理学院 专业:会计 班级:会计 XXXXXX 学号: XXXXXXXXXXXXX

目录 一、引言 二、财务杠杆原理运用现状 (一)财务杠杆原理运用现状 (二)财务杠杆原理运用存在的问题 三、剖析财务杠杆运用存在的问题 (一)片面追求资产规模,盲目扩大负债规模 (二)过分倚重负债融资,未能理性的对待财务杠杆(三)风险防机制不健全 四、完善财务杠杆运用的对策 (一)努力提高偿债能力以避免财务风险 (二)合理利用财务杠杆积极拓展融资渠道 (三)结合经营特征完善风险防机制 五、结语 致词 参考文献

财务杠杆原理及其运用问题与典型案例分析 摘要:自从我国加入世贸组织之后,伴随着世界经济的全球化趋势以及国市场竞争的愈发激烈,国企业面临的发展压力越来越大。为了寻求更多的发展机会,多元化的融资渠道至关重要。在中国的上市公司,债务融资由于其独特的财务杠杆效应成为企业普遍采用的重要的融资手段,负债经营是几乎每个企业都不可避免的经营方式。西方学者对财务杠杆的运用做了一系列的研究,结论已逐渐趋于成熟完善。而我国却尚未形成一套臻于完善、系统贴近本国国情的应用理论用以指导企业如何合理运用财务杠杆为企业更好的服务。本文基于财务杠杆的应用现状分析及存在的问题和原因,在分析的基础上,提出了相应的对策,对帮助财务杠杆的使用者更好地了解及运用财务杠杆,在可承受的风险中实现财务杠杆价值利用的风险价值最大化,为企业创造出更多的经济效益提出一些宝贵意见。 关键字:企业;财务杠杆;运用;分析

C#中TreeView控件的用法

TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows.Forms"中的"TreeView"类来定义的,而其中的节点(即Node),是由命名空间"System.Windows.Forms"中的"TreeNode"来定义的。所以当在程序中创建一个TreeView对象,其实只是创建了一个可以放置节点的"容器"。而在这个容器中加入一个节点,其实就是加入了从"TreeNode"类中创建的一个节点对象;同样删除一个节点,也就是删除一个"TreeNode"节点对象。 一、C#操作TreeView组件中的一些常用方法以及具体实现: TreeView组件虽然是一个操作起来比较麻烦的组件,但归根到底,可以总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。掌握了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。下面就分别来加以介绍。 (1).加入子节点: 所谓子节点,就是处于选定节点的下一级节点。加入子节点的具体过程是:首先要在TreeView 组件中定位要加入的子节点的位置,然后创建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add ( )方法),加入此节点对象。下面就是在treeView1组件中加入一个子节点的具体代码: //首先判断是否选定组件中的位置 if ( treeView1.SelectedNode == null ) { MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , https://www.doczj.com/doc/502469339.html,rmation ) ; } else { //创建一个节点对象,并初始化 TreeNode tmp ; tmp = new TreeNode ( "节点名称" ) ; //在TreeView组件中加入子节点 treeView1.SelectedNode.Nodes.Add ( tmp ) ; treeView1.SelectedNode = tmp ; treeView1.ExpandAll ( ) ; }

相关主题
文本预览
相关文档 最新文档