韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

創(chuàng)建可編輯的xml文檔(之3)執(zhí)行拖放設(shè)置

創(chuàng)建可編輯的xml文檔(之3)執(zhí)行拖放設(shè)置

更新時間:2022-10-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

執(zhí)行托放操作

定義了treeview 顯示得內(nèi)容以后,現(xiàn)在你應(yīng)該準(zhǔn)備處理如何四處移動元素了,大多數(shù)得開發(fā)人員在處理拖放操作時得通用觀念都是很相似得,無論使用visual c++ visual basic 或者任何一種.net 語言,所以我一直用下面的四個方法處理這個操作:

MouseDown-----用戶選擇得內(nèi)容

DragEnter---用戶開始拖動選中得項目

DragOver ---用戶拖動選中得項目經(jīng)過另一個項目

DragDrop---用戶在某個地方放下選擇得項目

執(zhí)行這些方法適當(dāng)?shù)媒o用戶針對可以和不可以處理的得操作分別給予視覺反饋,同時告訴用戶他們是怎樣被執(zhí)行的,并且不用管給定的上下文的細(xì)節(jié)操作,所以就有三個直接的問題需要被考慮:

1. 你如何使treeview 控件中的一個節(jié)點和底層xml文檔中的節(jié)點進(jìn)行匹配

2. 為了物理節(jié)點能夠跟隨圖形進(jìn)行轉(zhuǎn)換,用戶如何操作xml文檔

3. 你如何有效地執(zhí)行大的xml文檔。如果這樣的轉(zhuǎn)變要不得不加強時,你不想把沒有必要的東西綁定到用戶界面

清單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 query As String = ""

Do
query = "*[" & xpath_filter & "][" & (node.Index + 1) & "]/" & query
node = node.Parent
Loop While Not (node Is Nothing)

Return query.Substring(0, query.Length - 1)
End Function




顯示了MouseDown 句柄 和它調(diào)用的幫助方法buildXPathQuery,首先代碼檢查一個被選中的節(jié)點,接著通過使用事先定義好的篩選, 存儲TreeNode (drag_node) 和使它關(guān)聯(lián)到xml文檔根節(jié)點的Xpath 查詢(xpath_remove_query)。 例如下面的查詢確定了樹的根節(jié)點的第二個孩子有五個孩子文件夾,一個文件夾可以用查詢"attribute::id." 唯一確定

*[attribute::id][2]/*[attribute::id][5]
當(dāng)用戶拖動一個節(jié)點到另外一個位置時,代碼列表1提供了移動treenode 和treenode相關(guān)聯(lián)的xmlNode的足夠信息。你也許認(rèn)為你能夠得到相同的效果,而完全沒有必要引用篩選,并且簡單的指定像“托動文檔根節(jié)點的第二個孩子到第一個孩子節(jié)點內(nèi)部”這樣的事情,但是這里不是你認(rèn)為的那樣,應(yīng)該是篩選器強迫treeview 的節(jié)點層次和xml文檔一一對應(yīng)的,沒有了它 ,這樣的直接使用可能是不明智的,例如假設(shè)篩選器匹配下面的結(jié)構(gòu):

<contact>
<email />
<city />
<country />
</contact>
這樣的約束意味著Xpath 篩選器將contacts.xml的層次作為一個簡單的子元素列表看待

[0] <contacts>
[0] <contact="Alex">
[1] <contact="Rebekah">
[2] <contact="Justin">
然而,treeview 將相同的文檔看作一個節(jié)點的層次列表

[0] <contacts>
[0] <contact="Alex">
[0] <email>
[1] <city>
[2] <country>
[1] <contact="Rebekah">
只要聯(lián)系點從不和另一個聯(lián)系點嵌套,你就能保持treeview 和 xml文檔保持同步而沒有必要求助于篩選器,例如 如果你想交換"Alex"和"Rebekah"聯(lián)系點入口,你可以很容易的這么做:
指令: 移除 node[0], child[0];在node[0], child[0]之后重新插入它
treeview: 移除叫做"Alex"的"contact"節(jié)點,在叫做"Rebekah" 的"contact"節(jié)點之后從新插入它
xml文檔:移除叫做"Alex"的"contact"節(jié)點,在叫做"Rebekah" 的"contact"節(jié)點之后從新插入
但是嵌套的contacts,相同的指令會引起TreeView表示和xml文檔表示對不準(zhǔn)。例如 假設(shè)你試圖移動在下面treeview表示中嵌套的"Rebekah":
[0] <contacts>
[0] <contact="Alex">
[0] <contact="Rebekah">
[1] <contact="Justin">
在用不同方法表現(xiàn)節(jié)點的xml文檔中
[0] <contacts>
[0] <contact="Alex">
[0] <contact="Rebekah">
[1] <contact="Justin">

一個對treeview 表現(xiàn)真正有意義的指令沒有必要和xml文檔執(zhí)行相通的工作:
指令:Remove node[0], child[0], child[0]
treeview: Remove "contact" node called "Rebekah"
xml文檔:從一個叫做“ALex”的節(jié)點上錯誤的移動了“Email”節(jié)點
我們可以借助一個篩選器,篩選器應(yīng)該能夠用離散的實體區(qū)分contacts,而不是通過簡單的樹節(jié)點的路徑進(jìn)行區(qū)分。這樣你就沒有必要在擔(dān)心如何contact "Rebekah"放到它的父節(jié)點”alex”內(nèi)部的正確位置了,因此你就可以保證自己的安全設(shè)置
假設(shè)一個用戶決定要拖動其中一個contact,下一步就是對用戶操作的內(nèi)容給予反饋,一個DragEnter檢測操作被拖動的項目是一個treeview 節(jié)點,然后記錄發(fā)生的拖拉操作。對于一個想要執(zhí)行它自己的應(yīng)用程序來說這個控制又很大的用處。因此變量drag_drop_active作為DragDropActive的屬性直接公開
[C#]
private void XmlTreeView_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
// Allow the user to drag tree nodes within a
// tree
if (e.Data.GetDataPresent(
"System.Windows.Forms.TreeNode", true ))
{
e.Effect = DragDropEffects.Move;
drag_drop_active = true;
}
else
e.Effect = DragDropEffects.None;
}



[VB]
Private Sub XmlTreeView_DragEnter( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) _
Handles MyBase.DragEnter
' Allow the user to drag tree nodes within a tree
If e.Data.GetDataPresent( _
"System.Windows.Forms.TreeNode", True) Then
e.Effect = DragDropEffects.Move
drag_drop_active = True
Else
e.Effect = DragDropEffects.None
End If
End Sub
當(dāng)用戶拖動文件夾時DragOver被不斷的調(diào)用
Private Sub XmlTreeView_DragOver(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles MyBase.DragOver
' Fired continuously while a tree node is dragged. We need to override this to
' provide appropriate feedback
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
' Determine which node we are dragging over
Dim pt As Point = Me.PointToClient(New Point(e.X, e.Y))
Dim drop_node As TreeNode = Me.GetNodeAt(pt)

' If it's the same as the one we last dragged over, take no further action
If drop_node Is last_drop_node Then
Return
End If

' Otherwise highlight the node as a potential drop target
Me.SelectedNode = drop_node
last_drop_node = drop_node

' If the drop node and drag node are the same, indicate that the drag is
' disallowed and take no further action (as per Explorer)
If drag_node Is drop_node Then
e.Effect = DragDropEffects.None
Return
End If

If right_mouse_drag Then
' Right mouse drag-and-drop operations constitute intra-folder
' rearrangements which provide continuous graphical feedback
' We need to cache the drop node's parent, since it will
' be inaccessible if we remove it from the tree
Dim drop_parent As TreeNode = drop_node.Parent

' Check if it's at the same level as the node being dragged
If drag_node.Parent Is drop_parent Then
' Temporarily remove the drop node's siblings from the tree; then add
' them back in a different order
Dim siblings(drop_parent.Nodes.Count) As System.Windows.Forms.TreeNode
Dim count As Integer = siblings.Length - 1

Dim item As Integer
For item = 0 To count - 1
siblings(item) = drop_parent.Nodes(0)
drop_parent.Nodes(0).Remove()
Next

For item = 0 To count - 1
If siblings(item) Is drop_node Then
drop_parent.Nodes.Add(drag_node)
Else
If siblings(item) Is drag_node Then
drop_parent.Nodes.Add(drop_node)
Else
drop_parent.Nodes.Add(siblings(item))
End If
End If
Next

' Highlight the new node
last_drop_node = drag_node
e.Effect = DragDropEffects.Move
Me.SelectedNode = drag_node
Else
e.Effect = DragDropEffects.None
End If
Else
' If the user is left-button dragging, disallow (pointless) attempts
' to drag a node into its parent's folder (as per Explorer)
If drag_node.Parent Is drop_node Then
e.Effect = DragDropEffects.None
Else
e.Effect = DragDropEffects.Move
End If
End If
End If
End Sub
出于執(zhí)行效率的原因,代碼首先檢查自從上次調(diào)用dragover 以后被拖動的文件是否發(fā)生了變化,如果發(fā)生了變化,代碼接著判斷處理中的拖動類型。以前我必須允許用戶最后可以重新排序和設(shè)置層次,我在這里選擇類似windows的行為(只要它被定義),在其他的地方使用我的方案。因此讓用戶使用左鍵復(fù)制或者移動文件夾是很不自然的,我們應(yīng)該讓用戶使用右鍵進(jìn)行處理文件夾的操作。然而這樣做會產(chǎn)生一個小問題,因為這兩個拖動將會用不同的方法進(jìn)行處理:左鍵的拖動直到拖動結(jié)束時,而右鍵拖動將不斷的反饋狀態(tài),即使不斷的拖動,直到用戶松開鼠標(biāo)的按鍵前,文檔不發(fā)生物理位置上的改變
既然這樣,代碼檢查被拖動的節(jié)點是否是節(jié)點的兄弟節(jié)點,如果是的話,父節(jié)點的所有子節(jié)點被從樹中分離出來,然后進(jìn)行拖放操作交換節(jié)點位置,然后再把這些子節(jié)點添加回去。結(jié)果是:釋放操作完成時,底層數(shù)據(jù)源根據(jù)當(dāng)前的可視化表達(dá)方式進(jìn)行更新,隱藏的底層數(shù)據(jù)和數(shù)據(jù)的可視化表達(dá)就可以保持同步。更好的處理方法是:不斷的顯示更新操作,因此用戶可以立刻得到關(guān)于拖動的反饋,xml文檔只需在拖動完成時更新一次。鼠標(biāo)左鍵的拖放操作不需要特殊的代碼,drag/drop API 可以適當(dāng)?shù)奶幚矸答?
用戶通過松開鼠標(biāo)鍵來完成拖放操作, 參考下面的代碼列表3
Listing 3. XMLTreeView_DragDrop and Helper Methods:
The XMLTreeView_DragDrop and its helper swapXmlDocumentNodes methods provide logic to decide where a node belongs among its siblings
Private Sub XmlTreeView_DragDrop(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
' Cancel drag/drop
drag_drop_active = False

' Check that we are dropping nodes within the same tree view
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) = False Then
Return
End If
' If it's a right-mouse drag-and-drop operation, the tree view will already
' show the updated hierarchy; so it's just a matter of updating the xml
' document to match the tree view
If right_mouse_drag Then
swapXmlDocumentNodes()
drag_node = Nothing
last_drop_node = drag_node
xpath_remove_query = ""
Else
' Determine which node we are dropping onto
Dim pt As Point = Me.PointToClient(New Point(e.X, e.Y))
Dim drop_node As TreeNode = Me.GetNodeAt(pt)

' Do nothing if the drag and drop target are the same node
If drag_node Is drop_node Then
Return
End If
If drop_node Is Nothing Then
' Don't allow the user to drag nodes off the tree. Though the tree view
' wouldn't complain, any attempt to create an xml document with 2 roots
' would cause problems
Return
End If

' Add the new node where it was dropped
drag_node.Remove()
drop_node.Nodes.Add(drag_node)

' And update the xml document to match the new tree view hierarchy
swapXmlDocumentNodes()
drag_node = Nothing
last_drop_node = drag_node
xpath_remove_query = ""
End If
End Sub


Private Sub swapXmlDocumentNodes()
' This method updates the xml document bound to the tree view so that the two node
' hierarchies are the same; it determines appropriate xpath queries to remove and
' reinsert the node in question by comparing the tree view's structure before and
' after the drag/drop operation took place
Dim node As System.Xml.XmlNode
node = xml_document.DocumentElement.SelectSingleNode(xpath_remove_query)
node.ParentNode.RemoveChild(node)

' Create a query to determine where the node should be reinserted
Dim xpath_insert_query As String = buildXPathQuery(drag_node)

' We are only interested in the parent portion of the insert query
xpath_insert_query = xpath_insert_query.Substring(0, xpath_insert_query.LastIndexOf("/"))
Dim insert_parent As System.Xml.XmlNode = xml_document.DocumentElement.SelectSingleNode(xpath_insert_query)

If drag_node.Parent.Nodes.Count = 1 Then
' Special case: if as a result of the drag/drop operation some parent without
' previous children gained a child, just add the child to the parent.
insert_parent.AppendChild(node)
Else
' Otherwise we need to insert the child at its appropriate position; XmlNode
' does not have an Index property, so we need to do this by hand
Dim child As Integer
For child = 0 To insert_parent.ChildNodes.Count - 1
If child = drag_node.Index Then
insert_parent.InsertBefore(node, insert_parent.ChildNodes(child))
Return
End If
Next

' If we've reached here, the node to be reinserted must be the last child
insert_parent.AppendChild(node)
End If
End Sub
那樣的話,一些簡單的代碼就可以完成在文檔中移除樹節(jié)點和它相關(guān)的文件夾,還可以通過創(chuàng)建適當(dāng)?shù)腦path 查詢來在新的位置上重新插入文件夾。需要特別指出的是:當(dāng)用戶在一個沒有子節(jié)點的文件夾下面插入一個文件夾時,只能通過創(chuàng)建一個新的子節(jié)點來實現(xiàn)。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
久久精品国产精品青草| 国产在线一在线二| 亚洲自拍偷拍一区二区| 午夜精品国产精品大乳美女| 欧美性猛交xxxx免费看蜜桃| 99se婷婷在线视频观看| 91av入口| 蜜臀av性久久久久蜜臀av麻豆| 日韩美女视频一区二区在线观看| 牛牛电影国产一区二区| www.久久色| 亚洲精品国产a| 色综合久久久网| 精品亚洲一区二区三区| 亚洲成年人网站在线观看| 国产乱色精品成人免费视频| 精品在线亚洲视频| 91视频国产精品| 国产在线观看免费| 免费电影网站在线视频观看福利| 国产精品成人一区二区艾草| 国产偷人视频免费| 日本久久黄色| 丰满少妇一区二区三区| 成人做爰69片免费看网站| 一本一道久久a久久综合蜜桃| 九义人在线观看完整免费版电视剧| 色哟哟网站在线观看| 日韩av网站免费在线| 欧美性猛交99久久久久99| 玖玖在线免费视频| 影音av资源站| 国产精品久久久久久久久久小说| 黄网在线免费| 国产在线观看福利| 九九热在线免费视频| а√在线中文网新版地址在线| 色网站免费在线观看| 日本中文字幕免费观看| 国产精品天天看天天狠| 久久亚洲免费视频| 电影k8一区二区三区久久| 国产91av在线| 国产精品毛片无遮挡高清| 精精国产xxxx视频在线野外| 99精品一区二区三区的区别| 午夜精品影视国产一区在线麻豆| 日韩在线观看免费全集电视剧网站| 国产精品私拍pans大尺度在线| 91一区二区在线观看| 亚洲免费黄色网| 自拍偷拍欧美视频| 一区二区三区在线免费观看视频| 亚洲 欧美综合在线网络| 美女av在线播放| 久久久噜噜噜www成人网| 国产偷倩在线播放| 四虎影院观看视频在线观看| 欧美成人aa大片| 久久久久久久久一区| 精品国产福利在线| 日韩欧美精品免费在线| 啪啪亚洲精品| 午夜在线网站| 国内自拍视频在线播放| 亚洲综合成人av| 国产精品成人观看视频免费| 激情小说图片视频| 国产精品久久久久9999吃药| 国产精品色呦| 日本一二区视频| 国产大尺度视频| 国产资源中文字幕| 97se视频在线观看| 欧美一区二区视频网站| 一本色道久久亚洲综合精品蜜桃| 亚洲欧美日韩第一区| 国产精品自产自拍| 妖精视频在线观看免费| 亚洲欧洲精品一区二区| 国产视频中文字幕在线观看| 美女性感视频久久| 欧美亚洲国产视频| 国产传媒视频在线观看| 精彩视频一区二区三区| 久久久久久久久成人| 国产剧情在线视频| 九九热在线免费视频| 少妇视频一区二区| 亚洲 自拍 另类小说综合图区| 欧美综合欧美视频| 99精品人妻少妇一区二区| 国精产品一区一区三区有限在线| 国产精品久久久久久一区二区| 亚洲欧洲美洲国产香蕉| av毛片在线免费观看| 韩国美女主播一区| 日韩国产在线观看| 国产精品国产三级国产专播精品人| 视频一区二区在线观看| 亚洲乱熟女一区二区| 欧美日韩国产中文精品字幕自在自线| 欧美人与禽zozzo禽性配| 黑人狂躁日本娇小| 麻豆久久久久久久| 亚洲v日本v欧美v久久精品| 成人免费小视频| 日韩码欧中文字| 黄色正能量网站| 日韩午夜在线观看视频| 国产精品久久久久久人| 成人午夜激情免费视频| 大波视频国产精品久久| 国产欧美精品在线观看| 亚洲美女av在线| 青娱乐在线视频免费观看| 日韩av免费| 国产探花在线播放| 国产精品欧美激情| 热久久99这里有精品| 在线亚洲+欧美+日本专区| 精品国产成人av在线免| 伊人久久综合| 免费观看在线综合| 国产麻豆精品在线| 国产精品免费一区二区| 九色在线免费| 国产一区二区三区成人欧美日韩在线观看| www.精品av.com| 另类综合日韩欧美亚洲| 中文字幕高清视频| 欧美黄色一区二区三区| 日韩精品久久一区二区| 亚洲国产sm捆绑调教视频| 国产精品mm| 97在线观看视频国产| 佐山爱痴汉视频一区二区三区| 任我爽在线视频| 欧美a视频在线| 国内综合精品午夜久久资源| 国产又粗又猛又爽又黄的视频一| 黄色a级三级三级三级| 变态另类ts人妖一区二区| 欧美综合亚洲图片综合区| 少妇高潮一区二区三区69| 久久久久免费看黄a片app| 免费人成黄页网站在线一区二区| 天天久久夜夜| 色播视频在线观看| 亚洲性猛交xxxx乱大交| 久久撸在线视频| 中文字幕欧美人妻精品一区| 国产免费人人看| 国内成人免费视频| 日韩久久久久久久| 日韩免费电影一区| 亚洲精品第一区二区三区| 97精品久久久午夜一区二区三区| 成人av在线播放网址| 成人看片网站| av日韩一区二区三区| 国产一级黄色| 一区二区三区福利视频| 无码精品黑人一区二区三区| 狠狠色噜噜狠狠狠8888米奇| 欧美一二三区视频| 97精品人妻一区二区三区| 国产免费黄色片| 不卡视频一区二区三区| 国产免费av国片精品草莓男男| 91精品国产综合久久蜜臀| 国产精品二区一区二区aⅴ| 国产精品免费视频一区一| 亚洲一区三区| 国产精品一区视频| av动漫在线播放| 爽成人777777婷婷| 国产成人在线网址| 成年人在线视频免费观看| www.91视频com| 日韩 欧美 精品| 欧美日韩国产高清| 北条麻妃在线一区二区免费播放| 成人自拍视频在线观看| 成在在线免费视频| 国产浴室偷窥在线播放| 国产人成网在线播放va免费| av三级影院| 免费看成年视频网页| 亚洲天堂av电影| 日韩中文字幕亚洲精品欧美| 182午夜在线观看| 国产欧美一区二区三区在线观看视频| 久久夜色精品国产欧美乱极品| 四虎影视国产在线视频| 久久久精品一区二区三区| 欧美videofree性高清杂交| 亚洲精品国产精品乱码在线观看| 99热在线网站| xxx欧美xxx| 亚洲 日韩 国产第一区| 色www精品视频在线观看| 亚洲网站情趣视频| 春暖花开亚洲| 美女被搞网站| 色综合一个色综合| 99热6这里只有精品| 日韩大片免费在线观看| 日本欧美国产在线| 国产成人短视频| wwwwxxxx日本| 人人妻人人澡人人爽欧美一区| 视频二区在线| 久久久久久九九| 欧美日韩高清在线一区| av中文字幕在线观看| 欧美性xxxxx极品| 制服丝袜在线91| 国语自产精品视频在线看| 美女被内谢流白浆高视频| 亚洲a在线播放| 日本黄色播放器| 亚洲欧美另类日本| 成年人在线看| 米仓穗香在线观看| 精品日产乱码久久久久久仙踪林| 99re8精品视频在线观看| 999精品一区| www插插插无码免费视频网站| 欧美性videos| 国产亚洲一区二区三区在线观看| 国产一级片麻豆| 91嫩草国产丨精品入口麻豆| 亚洲精品一区二三区不卡| 日韩美女主播在线视频一区二区三区| av片在线观看网站| 亚洲欧洲另类精品久久综合| 中文字幕视频在线免费欧美日韩综合在线看| 国产二区视频| 亚洲不卡在线播放| 国产三级电影在线| 欧美日韩免费观看中文| 粉嫩av一区二区| 一本加勒比hezyo黑人| 国产69精品久久久久孕妇| 欧美高清videos性极品| 一本一道久久a久久精品蜜桃| 久久婷婷亚洲| 人妻妺妺窝人体色www聚色窝| 五月天综合在线| 美女福利一区二区| 欧洲杯什么时候开赛| 国产爆乳无码一区二区麻豆| 在线播放国产视频| 亚洲性生活视频| 亚洲va欧美va国产综合剧情| 久久99热这里只有精品| 亚洲综合最新在线| 一本久久a久久精品vr综合| 欧美在线日韩在线| 激情五月综合色婷婷一区二区| 老熟女高潮一区二区三区| 久久久视频免费观看| 国产精品一级片| 日本大片在线观看| 99精品美女视频在线观看热舞| 波多野结衣大片| 97久久综合精品久久久综合| 国产福利片在线观看| 国产精品18久久久久久久网站| 久久国产日韩欧美| 中文字幕一区二区人妻痴汉电车| 一区二区三区在线电影| 欧美日韩不卡一区二区| 欧美成人sm免费视频| 国产高清视频网站| 国产秀色在线www免费观看| 欧美在线激情网| www.操操操.com| 久久精品噜噜噜成人av农村| 中文字幕免费一区二区三区| 天堂网2014av| 草莓视频丝瓜在线观看丝瓜18| 青春草国产成人精品久久| 成人偷拍自拍| 丁香激情视频| 国产欧美精品| 免费视频爱爱太爽了| 91亚洲精品久久久久久久久久久久| 九一精品在线观看| 高清日韩电视剧大全免费| 国产伦子伦对白视频| 日本一级免费视频| 有没有片在线看www| 在线综合亚洲欧美在线视频| 91精品国产色综合久久不卡电影| 国产午夜亚洲精品一级在线| 久久免费国产精品| 久久久久日韩精品久久久男男| 国产精品视频网站在线观看| 亚洲欧美日韩国产一区| 中文字幕 久热精品 视频在线| 精品呦交小u女在线| 成全在线观看免费完整动漫| 91视频福利| 久久久国产精彩视频美女艺术照福利| 亚洲天堂男人的天堂| 成人免费直播| 国产精品视频线看| 中文在线资源观看视频网站免费不卡| 久久久久久久久久久久久久av| av片在线观看免费| 日韩男人的天堂| 特黄视频免费看| 欧美理论电影在线| 四虎影视在线播放| 激情小说 在线视频| 日韩精品高清不卡| 国产精品久久夜| 一级片免费在线观看视频| 亚洲成av人乱码色午夜| 啄木系列成人av电影| 日韩国产欧美一区二区| 国产精品丝袜白浆摸在线| 成人99免费视频| 国产中文字幕第一页| 欧美成人精品福利在线视频| 日本不卡一区二区三区高清视频|