精华内容
下载资源
问答
  • TreeView属性

    千次阅读 2019-01-22 20:24:45
    TreeView 控件的一些常用属性: 1、CheckBoxes 属性:指示是否在树视图控件中的树节点旁显示复选框。(默认值:False) 2、FullRowSelect 属性:当 FullRowSelect 为 true 时,选择突出显示将跨越树视图的整个宽度,...

    TreeView 控件的一些常用属性:

    1、CheckBoxes 属性:指示是否在树视图控件中的树节点旁显示复选框。(默认值:False)

    2、FullRowSelect 属性:当 FullRowSelect 为 true 时,选择突出显示将跨越树视图的整个宽度,即整个显示区域的宽度而不仅仅是树节点标签的宽度。如果 ShowLines 设置为 true,则将忽略 FullRowSelect 属性。(默认值:False)

    3、HideSelection 属性:指示选定的树节点是否即使在树视图已失去焦点时仍会保持突出显示。(默认值:True)

    4、HotTracking 属性:如果 HotTracking 属性设置为 true,那么当鼠标指针移过每个树节点标签时,树节点标签都将具有超级链接的外观。Underline 字体样式将应用于 Font 而 ForeColor 将设置为蓝色,从而使标签显示为链接。注意:如果 CheckBoxes 属性设置为 true,HotTracking 属性将失效。(默认值:False)

    5、Indent 属性:设置每个子树节点级别的缩进距离(以像素为单位)。(默认值:19)

    6、ItemHeight 属性:设置树视图控件中每个树节点的高度。(默认值:16)

    7、Nodes 属性:获取分配给树视图控件的树节点集合。这个属性是TreeView 控件最重要的属性之一,我们下文将会对它进行更加的详细的说明。

    8、PathSeparator 属性:树节点路径(TreeNode.FullPath 属性)所使用的分隔符串,默认为反斜杠字符 (\),树节点路径包括一组由 PathSeparator 分隔符串分隔的树节点标签。标签的范围为根树节点到所需的树节点。如下代码我们可以获得当前选中的节点的路径:

    MessageBox.Show(TreeView1.SelectedNode.FullPath)

    9、SelectedNode 属性:获取或设置当前在树视图控件中选定的树节点,如果没有选定任何节点,则 SelectedNode 属性则为Nothing。

    10、ShowLines 属性:指示是否在树视图控件中的树节点之间绘制连线。(默认值:True)

    11、ShowPlusMinus 属性:指示是否在包含子树节点的树节点旁显示加号 (+) 和减号 (-) 按钮。(默认值:True)

    12、ShowRootLines 属性:指示是否在树视图根处的树节点之间绘制连线。(默认值:True)

    展开全文
  • PB TreeView 属性,事件详解(转)

    千次阅读 2016-02-25 10:09:01
    PB TreeView 属性,事件详解(转)   本文转自:http://chbin95233.blog.163.com/blog/static/32075111201010573448815/ ■TreeView控件可以以树型方式来组织项目,不仅显示直观、界面友好,而且项目的...
    PB TreeView 属性,事件详解(转)
    

     

    本文转自:http://chbin95233.blog.163.com/blog/static/32075111201010573448815/

    ■TreeView控件可以以树型方式来组织项目,不仅显示直观、界面友好,而且项目的管理和操作更为方便,是当前比较流行的一个控件。
    该控件的特点是在较小的空间可以分层次显示大量的数据,并且可以按照用户的要求检索数据。该控件具有以下功能:
    通过可以展开或者折叠的节点遍历数据。
    图形化和文本化的节点显示。
    拖放操作。
    包括剪切、复制和粘贴的节点操作。

    ■典型编程
    通常TreeView控件用来让用户选择数据,或者进行数据的管理。比如,在一个人事管理软件中,使用部门、姓和名这样的三层结构查找数据就比较容易,而且可以通过拖拉来进行人事单位的变动。
    首先,在窗口打开时创建该控件。下面的脚本向TreeView控件中首先添加最高级别的项目:
    TreeViewItem ltvi_item
    ltvi_item.children = True
    ltvi_item.SelectedPictureIndex = 1
    ltvi_item.Label = "餐饮部"
    ltvi_item.Data = "餐饮部"
    ltvi_item.PictureIndex = 1
    Tv_1.InsertItemLast(0,ltvi_item)
    ltvi_item.Label = "接待部"
    ltvi_item.Date = "接待部"
    ltvi_item.PictureIndex = 2
    Tv_1.InsertItemLast(0,ltvi_item)

    上面的脚本添加所有一级项目,可以反复使用上面的脚本,直到添加完所有的一级项目。因为这些一级项目在程序运行之前就可以确定,所以可以直接添加。对于数据可能要发生变动的,应该从数据库中提取数据,通过循环来添加项目。

    下面的脚本在用户开始拖动时判断选中项目是否允许拖动。在部门、姓和名三层结构中,只允许拖动最低一层的数据。所以,在BeginDrag事件中编写如下脚本:
    TreeViewItem ltvi_source
    If ltvi_source <> 2 Then //判断用户选中的是否是职工,只能拖动职工
    This.Drag(Cancel!)
    Else
    //保存被拖动项目和其父项目,语句省略
    End If

           当用户在可以接收拖动数据的项目上时,应该高亮显示该项目,以给用户一定的操作暗示信息。首先判断当前鼠标所在的项目是否可以接收拖动的数据,如果可以接收则高亮显示该项目。在DragWithin事件中编写如下脚本:
    TreeViewItem ltvi_over
    If GetItem(handle,ltvi_over) = -1 Then
    SetDropHightLight(0)
    Return 0
    End If

    当用户在可以接收拖动数据的项目上释放鼠标时,应该对项目进行一定的处理。通常要删除源数据,并且在释放的目标项目中添加该数据。


    【属性】

    **TreeView属性
    ▲Visible
    布尔类型,表示该控件是否可见。该属性的缺省值为True。

    ▲Enabled
    布尔类型,表示控件是否可用。该属性的缺省值为True。

    ▲EditLabels
    布尔类型,表示用户是否可以编辑控件中项目的标签。缺省值为False,不允许用户编辑标签。

    ▲HasButtons
    布尔类型,表示是否在父项目的左边显示“+”和“-”按钮来表示是展开还是折叠状态。该属性的缺省值为True。

    ▲HasLines
    布尔类型,表示在项目之间和父子项目之间是否有线相连。该属性的缺省取值为True。

    ▲LinesAtRoot
    布尔类型,表示是否显示连接所有根项目的线条,该属性的缺省值为False。

    ▲DeleteItems
    布尔类型,表示是否也许用户在控件中使用Delete按钮来删除项目。该属性的缺省取值为False。

    ▲DisableDragAndDrop
    布尔类型,表示是否禁止用户进行拖拉操作。该属性的缺省值为True,不允许用户进行拖拉操作。

    ▲HideSelection
    布尔类型,表示当TreeView控件失去焦点时选中的内容是否不保持高亮显示。该属性缺省值为True,表示当TreeView控件失去焦点时不高亮显示其中的选中项目。

    ▲ToolTips
    布尔类型,表示是否显示工具栏气泡帮助。该属性的缺省取值为True。

    ▲CheckBoxes
    布尔类型,表示项目左面是否显示复选框。缺省为False。

    ▲TrackSelect
    布尔类型,表示项目是否进行选择跟踪,也就是当该属性取值为True,鼠标位于某个项目之上时,这项目改变颜色并且在项目下面显示下划线,表示当前项目正准备接收鼠标的操作。该属性的缺省取值为False。

    ▲FullRowSelect
    布尔类型,表示当选中项目时是否整行显示。该属性的缺省值为False。

    ▲SingleExpand
    布尔类型,表示是否只有一个项目可以展开。当该属性取值为True时,当前选中的项目展开,前面选中的项目自动折叠;当该属性取值为False时,可以有多个项目同时处于展开状态。该属性的缺省取值为False。

    ▲Border
    布尔类型,表示该控件是否显示边框。该属性的缺省取值为True。该属性选中时,边框显示的样式还取决于BorderStyle属性的取值。

    ▲BorderStyle
    枚举类型,表示边框的显示样式。该属性可用的取值有StyleBox!(矩形边框),StyleLowered!(嵌入边框),StyleRaised!(高抬边框)和StyleShadowBox!(阴影矩形边框)。

    ▲SortType
    枚举类型,该属性用来规定控件中项目的排序规则。可用的取值有Ascending!(按字典顺序升序排列),Descending!(按字典顺序降序排列),UserDefinedSort!(根据用户在sort事件中的脚本进行排序)和Unsorted!(不排序)。

    ▲Indent
    Integer类型,表示以PowerBuilderUnit为单位的子项目的缩进数。该属性的取值可以为负数,但是这样有可能便子项目左移出控件的边界。缺省取值为0。

    ▲Accelerator
    Integer类型,取值为控件快捷链的ASCII码值。该属性保存了控件快捷键对应的ASCII码值。

    **TreeViewItem属性
    ▲Bold
    Boolean
    项目标签上的文字以粗体显示

    ▲Childen
    Boolean
    项目是否拥有子项目,可以使用该属性拥有子项目,以便在以后触发ItemPopulate和ItemExpanding事件

    ▲CutHighLighted
    Boolean
    确定项目是否是要剪切的对象

    ▲Data
    Any
    用户想和项目关联的数据值

    ▲DropHighLighted
    Boolean
    确定项目是不是当前要拖拉的对象

    ▲Expanded
    Boolean
    确定项目是否展开

    ▲ExpandedOnce
    Boolean
    确定项目是否至少被展开过一次。当在控件的ItemPopulate事件中添加子项目时该属性很有用,可以用来判断是否已经添加了子项目

    ▲HasFocus
    Boolean
    判断项目是否获得当前焦点

    ▲ItemHandle
    Long
    项目的句柄。一个项目的句柄是惟一的,并且不同项目的句柄也不会有重复

    ▲Label
    Label
    项目的文本标签

    ▲Level
    Integer
    确定TreeView控件中的项目的层次。根层次的取值为1

    ▲OverlayPictureIndex
    Integer
    覆盖图像列表中的图像索引号

    ▲PictureIndex
    Integer
    和项目相连的图像在图标列表中的索引号

    ▲SelectedPictureIndex
    Integer
    当项目选中时与项目相连的图像在图标列表中的索引号

    ▲Selected
    Boolean
    确定项目是否被选中

    ▲StatePictureIndex
    Integer
    项目状态图标的索引号


    【事件】

    ◆BeginDrag
    handle
    当用户在控件上单击鼠标并开始拖动时触发该事件

    ◆BeginLabelEdit
    handle
    当文本标签处于编辑状态并开始进行编辑时触发该事件

    ◆BeginRightDrag
    handle
    当用户在控件上单击鼠标右键并开始拖动控件时触发该事件

    ◆Clicked
    handle
    当用户点击控件时触发

    ◆Constructor
    没有
    当控件创建时触发。触发时机应该是包含控件的窗口打开之前

    ◆DeleteItem
    handle
    当删除项目时触发

    ◆Destructor
    没有
    当控件删除时触发。触发时机应该是在包含控件的窗口关闭时

    ◆DoubleClicked
    handle
    当用户双击控件时触发

    ◆DragDrop
    source ,handle
    当用户拖动一个对象到控件上并且松开鼠标时触发

    ◆DragEnter
    source
    当用户拖动一个其他对象进入控件时触发

    ◆DragLeave
    source
    当用户拖动一个其他对象离开控件时触发

    ◆DragWithin
    source,handle
    当用户拖动一个其他对象在控件中移动时触发

    ◆EndLabelEdit
    handle,newtext
    当用户结束标签的文本编辑时触发

    ◆GetFocus      
    没有
    控件获得焦点时触发。触发该事件时控件还没有激活

    ◆Help   
    Xpos、Ypos
    当用户点击F1按钮或者其他方式要获取帮助时触发

    ◆ItemCollapsed
    handle
    当控件的项目折叠后触发

    ◆ItemCollapsing
    handle
    当控件中的项目正在折叠时触发

    ◆ItemExpanded
    handle
    当控件的项目展开后触发

    ◆ItemExpanding
    handle
    当控件的项目正在展开时触发

    ◆ItemPopulate
    handle
    当控件中的项目正在打开其子项目时触发

    ◆Key
    key,keyflag
    当用户点击一个按钮时触发

    ◆LoseFocus
    没有
    控件失去焦点时触发。该事件触发时控件还是可用的

    ◆Other
    wparm,lparm
    当出现其他没有映射到PB消息上的消息时触发该事件

    ◆RightClicked
    handle
    当用户在控件上点击鼠标右键时触发该事件

    ◆RightDoubleClicked
    handle
    当用户在控件上双击鼠标右键时触发该事件

    ◆SelectionChanged
    oldhandle,newhandle
    某项目被选中时触发

    ◆SelectionChanging
    oldhandle,newhandle
    某项目被选中之前触发

    ◆Sort
    handle1,handle2
    当控件被排序时每次比较都触发该事件


    【函数】
    ★AddPicture
    向TreeView控件中添加图标或者位图。该函数的语法格式为controlname.AddPicture ( picturename )。

    ★AddStatePicture
    向TreeView控件的状态图标列表中添加指定的位图或者图标。该函数的语法是controlname.AddStatePicture ( picturename )。

    ★DeleteItem
    将TreeView控件中指定的项目及其子项目(如果有的话)都删除。函数的语法是treeviewname.DeleteItem ( itemhandle ),其中itemhandle保存的是项目的惟一句柄,在该控件的很多事件中都有handle这个参数,可以直接使用,也可以使用其他函数首先读取句柄。

    ★DeletePicture(s)
    删除控件中指定索引号的图片,函数格式为controlname.DeletePicture ( index )。函数controlname.DeletePictures( )用来删除控件中所有的图片。

    ★DeleteStatePicture(s)
    删除控件中指定索引号的状态图标,函数的格式是controlname.DeleteStatePicture ( index )。函数controlname.DeleteStatePictures ( )用来删除控件中所有的状态图标。

    ★EditLabel
    该函数的语法是treeviewname.EditLabel ( itemhandle ),作用是将句柄为itemhandle的项目的标签置为编辑状态。

    ★ExpandAll
    该函数的语法是treeviewname.ExpandAll ( itemhandle ),作用是将句柄为itemhandle的项目下的所有子项目展开。展开控件中的所有项目,可以对根级项目使用该函数。

    ★ExpandItem
    函数的语法是treeviewname.ExpandItem ( itemhandle ),作用是展开句柄为itemhandle的项目。该函数ExpandItem仅展开指定的项目,而不像ExpandAll那样展开指定项目的所有子项目。

    ★FindItem
    语法是treeviewname.FindItem(navigationcode,itemhandle),作用是查找和Itemhandle项目的相对位置为navigationcode指定模式的项目。参数navigationcode是一个枚举型变量,可用的取值如下所示。
    取    值   含    义
    RootTreeItem!   查找第一个根级项目,如果控件中还没有添加任何项目则返回-1
    NextTreeItem!   查找处于同一级别的下一个项目,如果没有下一个项目则返回-1
    PreviousTreeItem! 查找处于同一个级别的前一个项目,如果没有前一个项目则返回-1
    ParentTreeItem!   查找父项目的句柄,如果是根项目则返回-1
    ChildTreeItem!   查找第一个子项目,如果项目是折叠的,则将项目置为打开状态。
        如果没有子项目则返回-1
    FirstVisibleTreeItem! 查找控件中第一个可视项目,注意滚动条距顶可视项目的位置
    NextVisibleTreeItem! 查找下一个展开项目,如果下一个展开项目在控件的 可视项目的位置
    PreviousVisibleTreeItem!查找前一个展开的项目
    CurrentTreeItem! 查找当前选中的项目。如果当前没有选中的任何项目则返回-1
    DropHighLightTreeItem! 查找最近被设置了DropHightLighted属性的项目

    灵活运用如上所列的取值,可以很轻松地遍历TreeView中的所有项目。

    ★GetItem
    函数语法是treeviewname.GetItem ( itemhandle, item),作用是将句柄由参数itemhandle指定的项目的数据检索到TreeViewItem结构的参数item中。

    ★InsertItem
    函数语法是treeviewname.InsertItem(handleparent,handleafter,label, pictureindex ),作用是将标签为label的项目插入到控件中,插入位置在handleparent指定句柄的项目之下作为它的子项目,句柄为handleafter同级项目的后面。该函数还有另外一种语法格式是treeviewname.InsertItem ( handleparent, handleafter, item ),作用是将TreeViewitem类型的变量item指定的项目插入到控件的指定位置,另外两个参数的含义和前面完全相同。

    ★InsertItemFirst
    treeviewname.InsertItemFirst (handleparent,label,pictureindex )或者treeviewname.InsertItemFirst ( handleparent, item )都可以。前面一种语法中,插入的项目标签内容由label指定,图标由pictureindex指定。在后面一种语法中,插入项目的属性可以更详细地设定,插入的位置也是由handleparent参数指定。

    ★InsertItemLast
    treeviewname.InsertItemLast(handleparent,label,pictureindex)或者treeviewname.InsertItemLast ( handleparent, item )两种语法格式,都可以将指定的项目插入到由参数handleparent指定的项目下并作为它的最后一个子项目。插入项目的属性或者由TreeViewItem类型的参数item详细设定,或者由label指定标签、pictureindex指定项目的图标。

    ★InsertItemSort
    treeviewname.InsertItemSort ( handleparent, label, pictureindex )或者treeviewname.InsertItemSort ( handleparent, item )两种语法格式,都可以将指定的项目按一定的排序方式插入到控件中。参数的含义和前面函数中参数的含义相同。

    ★SelectItem
    函数语法treeviewname.SelectItem ( itemhandle ),作用是选中由句柄itemhandle指定的项目。

    ★SetItem
    函数语法treeviewname.SetItem ( itemhandle, item ),作用是用TreeViewItem结构类型的参数item来修改itemhandle句柄指定的项目。
    展开全文
  • jquery treeview 属性模块

    2017-11-27 20:59:37
    jquery treeview 插件参数说明 treeview开源地址:https://github.com/jzaefferer/jquery-treeview 1、animated:String or Number 设置展开子节点时的显示速度,有 slow、normal、fast 或者指定速度值,与 ...

    jquery treeview 插件参数说明

    treeview开源地址:https://github.com/jzaefferer/jquery-treeview

    1、animated:String or Number
    设置展开子节点时的显示速度,有 slow、normal、fast 或者指定速度值,与 jQuery 的 hide(show)中的 speed 参数相似。

    这里有个问题,如果使用动态的效果,这时候给人一闪一闪的感觉,如果不喜欢可以不使用这个属性就可以,这样就没有那种一闪一闪的感觉了

     

    2、persist:String
    记忆折叠的方式。location:页面刷新不保留折叠状态;cookie:页面刷新保留折叠状态。

    3、collapsed:boolean  Default: false, all expanded
    初始化时的折叠状态。true,初始化为收缩节点状态;false,为全部节点展开。

    4、unique:boolean  Default: false
    展开同级节点的唯一性。true,当展开一个节点时,同级的其他节点会自动关闭;false,当展开一个节点时,同级的其他节点保持原形。

    5、control:Selector
    指定一个容器,控制整个tree的展开,收缩 或者收放 所有的节点。

    example

    $(".selector").treeview({
       control: "#container"
    })

    6.toggle:Callback
    当一个节点的收放状态改变时,调用自定义函数Callback。

    example

    $(".selector").treeview({
       toggle: function() {
           console.log(this + " has been toggle");
       }
    })

    7.add:Selector
    向已有的树中追加节点,selector 为需要追加的节点集合,该集合中的节点须与已有树的节点结构保持一致。

    example

    var tree = $(".selector").treeview();
    $(".button").click(function() {
      var newSublist =  $("<li><span class='folder'>New Sublist</span><ul>" +
         "<li><span class='file'>Item1</span></li>" +
         "<li><span class='file'>Item2</span></li></ul></li>").appendTo(tree);
      tree.treeview({
        add: newSublist
      });
    });

    8.cookieId:String
    设置 persist: cookie 后 用此参数设置cookie 的名称。

    9.url:String
    异步加载时,设置url 地址。

    下面就来看看如何的实用

    官方参考网站包涵Demo下载:http://bassistance.de/jquery-plugins/

    html页引用和JS部分

    复制代码
    <head runat="server">
    <%-- 文件引用部分,该部分都可从官方参考Demo中获得,其中cookie为上述参数“persist”服务来记录刷新前展示信息--%> <link href="jquery.treeview.css" rel="stylesheet" type="text/css" /> <script src="http://www.cnblogs.com/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> <script src="jquery.cookie.js" type="text/javascript"></script> <script src="jquery.treeview.js" type="text/javascript"></script> <title></title> <script type="text/javascript"> $(function () { $("#tree1").treeview({ collapsed: true, control: "#sidetreecontrol", persist: "cookie", unique: true, toggle: function (e) { $('ul', this).html('<li><a href=\"?/index.cfm\"><strong>hello</strong></a></li>');//这儿可以替换异步取数据函数 e.preventDefault();//阻止事件冒泡 } }); }) </script> </head>
    复制代码

    Body结构

    复制代码
    <ul id="tree1">
     <li>主节点内容
          <ul>
          <li>主节点的子节点1</li>
          <li>主节点的子节点2
                <ul>
                <li>主节点的子节点2的子节点</li>
                <li>主节点的子节点2的子节点</li>
                <li>主节点的子节点2的子节点</li>
                <li>主节点的子节点2的子节点</li>
                </ul>
          </li>
          <li>主节点的子节点3</li>
          <li>主节点的子节点4</li>
          </ul>
    </li>
    </ul>    
    复制代码

    加载节点时如果数据量很大,可先加载主节点,子节点通过参数toggle来异步加载
    由treeview树的规律,我们可以从数据库中来加载所需要的树

    复制代码
    <%
                DALZzjg dal = new DALZzjg();
                DALYhxx ydal = new DALYhxx();
                List<Xtgl_Zzjg> lists = new List<Xtgl_Zzjg>();
                lists = dal.FindWhere(" zzjg_npcode='10' ");
                string str = "<ul id=\"tree1\">";
                str += "<li><a href=\"?/index.cfm\"><strong>Home</strong></a>";
                if (lists.Count > 0)
                {
                    str += "<ul>";
                    foreach (Xtgl_Zzjg c in lists)
                    {
                        str += "<li><a href=\"?/index.cfm\"><strong>" + c.Zzjg_Nmc + "</strong><span style=\"display:none;\">" + c.Zzjg_Ncode + "</span></a>";
                        DALUserAndDep yydal = new DALUserAndDep();
                        List<View_UserandDep> listschild = new List<View_UserandDep>();
                        listschild = yydal.FindWhere(" zzjg_ncode='" + c.Zzjg_Ncode + "' order by px ");
                        if (listschild.Count > 0)
                        {
                            str += "<ul>";
                            foreach (View_UserandDep p in listschild)
                            {
                               // str += "<li><a href=\"?/index.cfm\"><strong>" + p.Yhxx_Nname + "</strong></a></li>";
                            }
                            str += "</ul>";
                        }
                        str += "</li>";
                    }
                    str += "</ul>";
                }
                str += "</li></ul>";
                Response.Write(str);
            %>
    复制代码

     

    展开全文
  • PB TreeView 属性,事件详解(转) ■TreeView控件可以以树型方式来组织项目,不仅显示直观、界面友好,而且项目的管理和操作更为方便,是当前比较流行的一个控件。 该控件的特点是在较小的空间可以分层次...

    PB TreeView 属性,事件详解(转)


    ■TreeView控件可以以树型方式来组织项目,不仅显示直观、界面友好,而且项目的管理和操作更为方便,是当前比较流行的一个控件。
    该控件的特点是在较小的空间可以分层次显示大量的数据,并且可以按照用户的要求检索数据。该控件具有以下功能:
    通过可以展开或者折叠的节点遍历数据。
    图形化和文本化的节点显示。
    拖放操作。
    包括剪切、复制和粘贴的节点操作。

    ■典型编程
    通常TreeView控件用来让用户选择数据,或者进行数据的管理。比如,在一个人事管理软件中,使用部门、姓和名这样的三层结构查找数据就比较容易,而且可以通过拖拉来进行人事单位的变动。
    首先,在窗口打开时创建该控件。下面的脚本向TreeView控件中首先添加最高级别的项目:
    TreeViewItem ltvi_item
    ltvi_item.children = True
    ltvi_item.SelectedPictureIndex = 1
    ltvi_item.Label = "餐饮部"
    ltvi_item.Data = "餐饮部"
    ltvi_item.PictureIndex = 1
    Tv_1.InsertItemLast(0,ltvi_item)
    ltvi_item.Label = "接待部"
    ltvi_item.Date = "接待部"
    ltvi_item.PictureIndex = 2
    Tv_1.InsertItemLast(0,ltvi_item)

    上面的脚本添加所有一级项目,可以反复使用上面的脚本,直到添加完所有的一级项目。因为这些一级项目在程序运行之前就可以确定,所以可以直接添加。对于数据可能要发生变动的,应该从数据库中提取数据,通过循环来添加项目。

    下面的脚本在用户开始拖动时判断选中项目是否允许拖动。在部门、姓和名三层结构中,只允许拖动最低一层的数据。所以,在BeginDrag事件中编写如下脚本:
    TreeViewItem ltvi_source
    If ltvi_source <> 2 Then //判断用户选中的是否是职工,只能拖动职工
    This.Drag(Cancel!)
    Else
    //保存被拖动项目和其父项目,语句省略
    End If

           当用户在可以接收拖动数据的项目上时,应该高亮显示该项目,以给用户一定的操作暗示信息。首先判断当前鼠标所在的项目是否可以接收拖动的数据,如果可以接收则高亮显示该项目。在DragWithin事件中编写如下脚本:
    TreeViewItem ltvi_over
    If GetItem(handle,ltvi_over) = -1 Then
    SetDropHightLight(0)
    Return 0
    End If

    当用户在可以接收拖动数据的项目上释放鼠标时,应该对项目进行一定的处理。通常要删除源数据,并且在释放的目标项目中添加该数据。


    【属性】

    **TreeView属性
    ▲Visible
    布尔类型,表示该控件是否可见。该属性的缺省值为True。

    ▲Enabled
    布尔类型,表示控件是否可用。该属性的缺省值为True。

    ▲EditLabels
    布尔类型,表示用户是否可以编辑控件中项目的标签。缺省值为False,不允许用户编辑标签。

    ▲HasButtons
    布尔类型,表示是否在父项目的左边显示“+”和“-”按钮来表示是展开还是折叠状态。该属性的缺省值为True。

    ▲HasLines
    布尔类型,表示在项目之间和父子项目之间是否有线相连。该属性的缺省取值为True。

    ▲LinesAtRoot
    布尔类型,表示是否显示连接所有根项目的线条,该属性的缺省值为False。

    ▲DeleteItems
    布尔类型,表示是否也许用户在控件中使用Delete按钮来删除项目。该属性的缺省取值为False。

    ▲DisableDragAndDrop
    布尔类型,表示是否禁止用户进行拖拉操作。该属性的缺省值为True,不允许用户进行拖拉操作。

    ▲HideSelection
    布尔类型,表示当TreeView控件失去焦点时选中的内容是否不保持高亮显示。该属性缺省值为True,表示当TreeView控件失去焦点时不高亮显示其中的选中项目。

    ▲ToolTips
    布尔类型,表示是否显示工具栏气泡帮助。该属性的缺省取值为True。

    ▲CheckBoxes
    布尔类型,表示项目左面是否显示复选框。缺省为False。

    ▲TrackSelect
    布尔类型,表示项目是否进行选择跟踪,也就是当该属性取值为True,鼠标位于某个项目之上时,这项目改变颜色并且在项目下面显示下划线,表示当前项目正准备接收鼠标的操作。该属性的缺省取值为False。

    ▲FullRowSelect
    布尔类型,表示当选中项目时是否整行显示。该属性的缺省值为False。

    ▲SingleExpand
    布尔类型,表示是否只有一个项目可以展开。当该属性取值为True时,当前选中的项目展开,前面选中的项目自动折叠;当该属性取值为False时,可以有多个项目同时处于展开状态。该属性的缺省取值为False。

    ▲Border
    布尔类型,表示该控件是否显示边框。该属性的缺省取值为True。该属性选中时,边框显示的样式还取决于BorderStyle属性的取值。

    ▲BorderStyle
    枚举类型,表示边框的显示样式。该属性可用的取值有StyleBox!(矩形边框),StyleLowered!(嵌入边框),StyleRaised!(高抬边框)和StyleShadowBox!(阴影矩形边框)。

    ▲SortType
    枚举类型,该属性用来规定控件中项目的排序规则。可用的取值有Ascending!(按字典顺序升序排列),Descending!(按字典顺序降序排列),UserDefinedSort!(根据用户在sort事件中的脚本进行排序)和Unsorted!(不排序)。

    ▲Indent
    Integer类型,表示以PowerBuilderUnit为单位的子项目的缩进数。该属性的取值可以为负数,但是这样有可能便子项目左移出控件的边界。缺省取值为0。

    ▲Accelerator
    Integer类型,取值为控件快捷链的ASCII码值。该属性保存了控件快捷键对应的ASCII码值。

    **TreeViewItem属性
    ▲Bold
    Boolean
    项目标签上的文字以粗体显示

    ▲Childen
    Boolean
    项目是否拥有子项目,可以使用该属性拥有子项目,以便在以后触发ItemPopulate和ItemExpanding事件

    ▲CutHighLighted
    Boolean
    确定项目是否是要剪切的对象

    ▲Data
    Any
    用户想和项目关联的数据值

    ▲DropHighLighted
    Boolean
    确定项目是不是当前要拖拉的对象

    ▲Expanded
    Boolean
    确定项目是否展开

    ▲ExpandedOnce
    Boolean
    确定项目是否至少被展开过一次。当在控件的ItemPopulate事件中添加子项目时该属性很有用,可以用来判断是否已经添加了子项目

    ▲HasFocus
    Boolean
    判断项目是否获得当前焦点

    ▲ItemHandle
    Long
    项目的句柄。一个项目的句柄是惟一的,并且不同项目的句柄也不会有重复

    ▲Label
    Label
    项目的文本标签

    ▲Level
    Integer
    确定TreeView控件中的项目的层次。根层次的取值为1

    ▲OverlayPictureIndex
    Integer
    覆盖图像列表中的图像索引号

    ▲PictureIndex
    Integer
    和项目相连的图像在图标列表中的索引号

    ▲SelectedPictureIndex
    Integer
    当项目选中时与项目相连的图像在图标列表中的索引号

    ▲Selected
    Boolean
    确定项目是否被选中

    ▲StatePictureIndex
    Integer
    项目状态图标的索引号


    【事件】

    ◆BeginDrag
    handle
    当用户在控件上单击鼠标并开始拖动时触发该事件

    ◆BeginLabelEdit
    handle
    当文本标签处于编辑状态并开始进行编辑时触发该事件

    ◆BeginRightDrag
    handle
    当用户在控件上单击鼠标右键并开始拖动控件时触发该事件

    ◆Clicked
    handle
    当用户点击控件时触发

    ◆Constructor
    没有
    当控件创建时触发。触发时机应该是包含控件的窗口打开之前

    ◆DeleteItem
    handle
    当删除项目时触发

    ◆Destructor
    没有
    当控件删除时触发。触发时机应该是在包含控件的窗口关闭时

    ◆DoubleClicked
    handle
    当用户双击控件时触发

    ◆DragDrop
    source ,handle
    当用户拖动一个对象到控件上并且松开鼠标时触发

    ◆DragEnter
    source
    当用户拖动一个其他对象进入控件时触发

    ◆DragLeave
    source
    当用户拖动一个其他对象离开控件时触发

    ◆DragWithin
    source,handle
    当用户拖动一个其他对象在控件中移动时触发

    ◆EndLabelEdit
    handle,newtext
    当用户结束标签的文本编辑时触发

    ◆GetFocus      
    没有
    控件获得焦点时触发。触发该事件时控件还没有激活

    ◆Help   
    Xpos、Ypos
    当用户点击F1按钮或者其他方式要获取帮助时触发

    ◆ItemCollapsed
    handle
    当控件的项目折叠后触发

    ◆ItemCollapsing
    handle
    当控件中的项目正在折叠时触发

    ◆ItemExpanded
    handle
    当控件的项目展开后触发

    ◆ItemExpanding
    handle
    当控件的项目正在展开时触发

    ◆ItemPopulate
    handle
    当控件中的项目正在打开其子项目时触发

    ◆Key
    key,keyflag
    当用户点击一个按钮时触发

    ◆LoseFocus
    没有
    控件失去焦点时触发。该事件触发时控件还是可用的

    ◆Other
    wparm,lparm
    当出现其他没有映射到PB消息上的消息时触发该事件

    ◆RightClicked
    handle
    当用户在控件上点击鼠标右键时触发该事件

    ◆RightDoubleClicked
    handle
    当用户在控件上双击鼠标右键时触发该事件

    ◆SelectionChanged
    oldhandle,newhandle
    某项目被选中时触发

    ◆SelectionChanging
    oldhandle,newhandle
    某项目被选中之前触发

    ◆Sort
    handle1,handle2
    当控件被排序时每次比较都触发该事件


    【函数】
    ★AddPicture
    向TreeView控件中添加图标或者位图。该函数的语法格式为controlname.AddPicture ( picturename )。

    ★AddStatePicture
    向TreeView控件的状态图标列表中添加指定的位图或者图标。该函数的语法是controlname.AddStatePicture ( picturename )。

    ★DeleteItem
    将TreeView控件中指定的项目及其子项目(如果有的话)都删除。函数的语法是treeviewname.DeleteItem ( itemhandle ),其中itemhandle保存的是项目的惟一句柄,在该控件的很多事件中都有handle这个参数,可以直接使用,也可以使用其他函数首先读取句柄。

    ★DeletePicture(s)
    删除控件中指定索引号的图片,函数格式为controlname.DeletePicture ( index )。函数controlname.DeletePictures( )用来删除控件中所有的图片。

    ★DeleteStatePicture(s)
    删除控件中指定索引号的状态图标,函数的格式是controlname.DeleteStatePicture ( index )。函数controlname.DeleteStatePictures ( )用来删除控件中所有的状态图标。

    ★EditLabel
    该函数的语法是treeviewname.EditLabel ( itemhandle ),作用是将句柄为itemhandle的项目的标签置为编辑状态。

    ★ExpandAll
    该函数的语法是treeviewname.ExpandAll ( itemhandle ),作用是将句柄为itemhandle的项目下的所有子项目展开。展开控件中的所有项目,可以对根级项目使用该函数。

    ★ExpandItem
    函数的语法是treeviewname.ExpandItem ( itemhandle ),作用是展开句柄为itemhandle的项目。该函数ExpandItem仅展开指定的项目,而不像ExpandAll那样展开指定项目的所有子项目。

    ★FindItem
    语法是treeviewname.FindItem(navigationcode,itemhandle),作用是查找和Itemhandle项目的相对位置为navigationcode指定模式的项目。参数navigationcode是一个枚举型变量,可用的取值如下所示。
    取    值   含    义
    RootTreeItem!   查找第一个根级项目,如果控件中还没有添加任何项目则返回-1
    NextTreeItem!   查找处于同一级别的下一个项目,如果没有下一个项目则返回-1
    PreviousTreeItem! 查找处于同一个级别的前一个项目,如果没有前一个项目则返回-1
    ParentTreeItem!   查找父项目的句柄,如果是根项目则返回-1
    ChildTreeItem!   查找第一个子项目,如果项目是折叠的,则将项目置为打开状态。
        如果没有子项目则返回-1
    FirstVisibleTreeItem! 查找控件中第一个可视项目,注意滚动条距顶可视项目的位置
    NextVisibleTreeItem! 查找下一个展开项目,如果下一个展开项目在控件的 可视项目的位置
    PreviousVisibleTreeItem!查找前一个展开的项目
    CurrentTreeItem! 查找当前选中的项目。如果当前没有选中的任何项目则返回-1
    DropHighLightTreeItem! 查找最近被设置了DropHightLighted属性的项目

    灵活运用如上所列的取值,可以很轻松地遍历TreeView中的所有项目。

    ★GetItem
    函数语法是treeviewname.GetItem ( itemhandle, item),作用是将句柄由参数itemhandle指定的项目的数据检索到TreeViewItem结构的参数item中。

    ★InsertItem
    函数语法是treeviewname.InsertItem(handleparent,handleafter,label, pictureindex ),作用是将标签为label的项目插入到控件中,插入位置在handleparent指定句柄的项目之下作为它的子项目,句柄为handleafter同级项目的后面。该函数还有另外一种语法格式是treeviewname.InsertItem ( handleparent, handleafter, item ),作用是将TreeViewitem类型的变量item指定的项目插入到控件的指定位置,另外两个参数的含义和前面完全相同。

    ★InsertItemFirst
    treeviewname.InsertItemFirst (handleparent,label,pictureindex )或者treeviewname.InsertItemFirst ( handleparent, item )都可以。前面一种语法中,插入的项目标签内容由label指定,图标由pictureindex指定。在后面一种语法中,插入项目的属性可以更详细地设定,插入的位置也是由handleparent参数指定。

    ★InsertItemLast
    treeviewname.InsertItemLast(handleparent,label,pictureindex)或者treeviewname.InsertItemLast ( handleparent, item )两种语法格式,都可以将指定的项目插入到由参数handleparent指定的项目下并作为它的最后一个子项目。插入项目的属性或者由TreeViewItem类型的参数item详细设定,或者由label指定标签、pictureindex指定项目的图标。

    ★InsertItemSort
    treeviewname.InsertItemSort ( handleparent, label, pictureindex )或者treeviewname.InsertItemSort ( handleparent, item )两种语法格式,都可以将指定的项目按一定的排序方式插入到控件中。参数的含义和前面函数中参数的含义相同。

    ★SelectItem
    函数语法treeviewname.SelectItem ( itemhandle ),作用是选中由句柄itemhandle指定的项目。

    ★SetItem
    函数语法treeviewname.SetItem ( itemhandle, item ),作用是用TreeViewItem结构类型的参数item来修改itemhandle句柄指定的项目。

    展开全文
  • 一些TreeView属性

    2015-12-06 22:56:53
    设置鼠标经过效果 HotTack ture RowSelect ture
  • C#-树视图的实现以及TreeView属性---ShinePans

    千次阅读 多人点赞 2014-05-04 21:51:58
    树视图TreeView 属性及方法 属性 说明 Nodes 获取分配给树视图控件的树节点集合 PathSeparator 获取或设置树节点路径所使用的分隔符串 SelesctedNode 获取或设置当树节点选...
  • DragDrop:拖放完成,也就是鼠标拖入对象并在拖放区域释放。DragEnter:拖放进入,也就是鼠标拖放对象进入拖放区域。DragLeave:离开拖放区域。...procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, ...
  • treeview属性和方法介绍

    千次阅读 2007-07-13 15:07:00
    1、autoselect=”false”:当访问者在treeview控件中对节点进行定位时,可以使用键盘上的箭头来进行定位。属性值为“false“,则不允许这样做。 2、Showplus=”true”:当两个节点收到一起的时候,你可以显示一个...
  • 1,自动展开(Autoexpand) = Ture。但是有时输入一个字,后面就会自动接著输入完成,下拉式选单中也会自动移到开移的位置。 2,HotTrack”的中文名称为“热点跟踪”,英文名称为“HotTrack”,类型为“逻辑型(bool...
  • 在一个项目中使用了Treeview树形控件,该树形控件上的每一个节点可以鼠标右键对其进行一些属性的设置。比如:有一个“小王”这样一个节点,鼠标右键这个节点的时候弹出一个属性设置Form,这个Form上列举一些针对...
  • ComponentArt-TreeView属性中文翻译

    千次阅读 2007-05-08 13:16:00
    主项名称 属性名称 中文解释 效果 CollapseDuration 折叠持续时间 Coll
  • 多了解它的属性应该蛮好玩的!.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
  • treeview属性

    千次阅读 2010-08-08 08:38:00
    TreeView和ImageList通常是在一起使用的,ImageList只是作为TreeView的一个属性,为TreeView提供图片。事先在ImageList中添加好各图片资源即可由TreeView使用(也许ImageList可以同时为多个控件提供图片)。设置...
  • TreeView控件属性

    千次阅读 2010-05-11 14:01:00
    TreeView控件属性属性说明AutoGenerateDataBindings可以设置为true。默认情况下需要手工设置数据和树接点的绑定关系CheckedNodes返回那些多选框被选中的节点的集合CollapseImageToolTip当节点处于折叠状态时,所显示
  • treeview 相关属性

    2012-08-01 17:15:13
    treeview 相关属性:   [ text:根目录名, classes:根目录文件类型,如 folder或file expanded:true 展开一级目录 ,false 不展开 children:[  id : 子元素ID  text:子元素name  classes:子目录文件...
  • TreeView.HideSelection 属性设置为 false,所选节点在 TreeView 控件仍会不同于当前所选内容的颜色突出显示颜色时 TreeView 控件失去焦点。 此属性可用于保留时在用户单击窗体上的其他控件,或将移动到不同的窗口由...
  • TreeView.ImageSet 属性

    2017-03-12 21:53:00
    TreeView.ImageSet 属性 .NET Framework 2.0 注意:此属性在 .NET Framework 2.0 版中是新增的。 获取或设置用于TreeView控件的图像组。 命名空间:System.Web.UI.WebControls程序集:...
  • 收藏的treeview属性

    千次阅读 2008-10-23 20:00:00
    TreeView和ImageList通常是在一起使用的,ImageList只是作为TreeView的一个属性,为TreeView提供图片。事先在ImageList中添加好各图片资源即可由TreeView使用(也许ImageList可以同时为多个控件提供图片)。设置...
  • TreeView.ImageSet 属性获取或设置用于 TreeView 控件的图像组。 命名空间: System.Web.UI.WebControls程序集: System.Web(在 system.web.dll 中) 异常类型 条件ArgumentOutOfRangeException指定的图像集不是 ...
  • 1.TreeView初始化完后会默认选中第一个节点,触发treeView1_AfterSelect事件,若想不默认选中节点,可将TabStop属性设置为false

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,394
精华内容 557
关键字:

treeview属性