登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>XML教程>>XML应用>>创建可编辑的xml文档(之三)执行拖放操作
创建可编辑的xml文档(之三)执行拖放操作
来源:不详 ‖ 作者:佚名 ‖ 点击: ‖ 时间:13-07-06 10:08:12 ‖ 【 】‖ 我要投稿
执行托放操作
定义了treeview 显示得内容以后,现在你应该准备处理如何四处移动元素了,大多数得开发人员在处理拖放操作时得通用观念都是很相似得,无论使用visual c++ visual basic 或者任何一种.net 语言,所以我一直用下面的四个方法处理这个操作:
MouseDown-----用户选择得内容
DragEnter---用户开始拖动选中得项目
DragOver ---用户拖动选中得项目经过另一个项目
DragDrop---用户在某个地方放下选择得项目
执行这些方法适当得给用户针对可以和不可以处理的得操作分别给予视觉反馈,同时告诉用户他们是怎样被执行的,并且不用管给定的上下文的细节操作,所以就有三个直接的问题需要被考虑:
1.  你如何使treeview 控件中的一个节点和底层xml文档中的节点进行匹配
2.  为了物理节点能够跟随图形进行转换,用户如何操作xml文档
3.  你如何有效地执行大的xml文档。如果这样的转变要不得不加强时,你不想把没有必要的东西绑定到用户界面
清单1
A TreeNode’s position maps to an XML node using an XPath query. 
 
Private Sub XmlTreeView_MouseDown(ByVal sender As Object, ByVal e As _
   System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
   ’ First check whether we’ve clicked on a node in the tree view; if not,
   ’ just return
   Dim pt As New Point(e.X, e.Y)
   drag_node = Me.GetNodeAt(pt)
 
   If drag_node Is Nothing Then Return
 
   ’ Highlight the node and build an xpath query so that we can remove it later
   xpath_remove_query = buildXPathQuery(drag_node)
   Me.SelectedNode = drag_node
 
   ’ Decide whether we’re going to perform an intra-folder rearrangement (right
   ’ mouse button) or a genuine drag-and-drop (left mouse button);
   ’ we do this in the MouseDown rather than DragEnter method, since by the time
   ’ DragEnter fires, the mouse may well have been dragged to a different node
   If e.Button = System.Windows.Forms.MouseButtons.Right Then
      right_mouse_drag = True
   Else
      right_mouse_drag = False
   End If
End Sub
 
Private Function buildXPathQuery(ByVal node As System.Windows.Forms.TreeNode) As String
   Dim qu
|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>|
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
  • 上一篇:让XSLT直接解析出XML里的Html标签
  • 下一篇:无
  • 相关文章列表
    请文明参与讨论,禁止漫骂攻击。  
    网友评论