精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解WinForm通用速選組件的構(gòu)建

開發(fā) 后端
在這里我們要討論的是WinForm通用速選組件的構(gòu)建,希望對(duì)大家了解WinForm組件有所幫助。

對(duì)于WinForm組件,大家并不陌生。在這里我們將為大家講解WinForm通用速選組件的構(gòu)建,這也是通往WinForm開發(fā)的必經(jīng)之路。

用戶界面中,需要用戶進(jìn)行多項(xiàng)選擇時(shí),我們通常會(huì)提供一組快速選擇(以下簡(jiǎn)稱速選)按鈕:全選、反選、清空,以方便用戶操作。本文章將會(huì)構(gòu)建一個(gè)通用速選組件來(lái)簡(jiǎn)化操作,使用之后,您不需要編寫任何代碼,只需設(shè)置兩個(gè)屬性便可讓一個(gè)控件擁有速選的功能。

WinForm中常見(jiàn)的幾種多選形式如下圖:

SelectComponent 

圖1

我們暫且將用于顯示選項(xiàng)的控件叫做“選項(xiàng)控件”,全選、反選、清空叫做“速選按鈕”。

四種形式采用了不同的控件用作選項(xiàng)控件、速選按鈕:

  選項(xiàng)控件 速選按鈕
形式一 CheckedListBox Label
形式二 CheckBox LinkLabel
形式三 TreeView Button
形式四 DataGridView PictureBox

實(shí)際使用中還可能會(huì)有其它形式的選項(xiàng)控件和速選按鈕,根據(jù)使用場(chǎng)合不同,選項(xiàng)控件和速選按鈕可以任意組合。這給我們編程帶來(lái)了麻煩,選項(xiàng)控件沒(méi)有統(tǒng)一的訪問(wèn)接口,換一個(gè)選項(xiàng)控件就要編寫不同的選擇代碼。

想要將全選、反選、清空的選擇邏輯提取出來(lái)還真不容易。于是很多程序員就選擇了針對(duì)實(shí)際應(yīng)用的組合(如形式一,CheckedListBox + Label)進(jìn)行直接編碼。這樣導(dǎo)致大量相似的代碼充斥在項(xiàng)目之中,會(huì)帶來(lái)以下問(wèn)題:

  1. 重復(fù)的編碼、調(diào)試、測(cè)試(主要是界面)工作;
  2. 一旦選項(xiàng)控件發(fā)生改變,就必須修改代碼,修改后還要測(cè)試;(可能性比較大,可能客戶不喜歡形式一,非要你修改成形式二)

這樣的直接編碼實(shí)際上已經(jīng)違反了DRY原則,我們應(yīng)該糾正。

面向?qū)ο笠笪覀兎庋b變化,我們這里不變的是速選的邏輯,變化的是選項(xiàng)控件和速選按鈕,變化是兩個(gè)方向的,有點(diǎn)接近橋模式的應(yīng)用場(chǎng)景了。不過(guò)我對(duì)設(shè)計(jì)模式了解不深,不敢冒用,而且感覺(jué)這里速選按鈕的變化是比較簡(jiǎn)單的,至少它們都有一個(gè)Click事件,也可以認(rèn)為是不變的。

 

#T#

我們采用另外一種途徑,.Net其實(shí)已經(jīng)給我們提供了一種擴(kuò)展控件功能的方式(也正體現(xiàn)了面向?qū)ο蟮腛CP原則),可以讓我們給控件賦予額外的功能。我們來(lái)看一個(gè)重要的接口:IExtenderProvider 接口,位于System.ComponentModel命名空間下。實(shí)現(xiàn)了這個(gè)接口的組件有ToolTip、ErrorProvider等,ToolTip、ErrorProvider這兩個(gè)組件可以向其它組件(控件是組件的一種)提供額外的功能,ToolStip能讓其它控件在用戶鼠標(biāo)懸停時(shí)彈出一個(gè)小框顯示一些提示信息,ErrorProvider則能讓控件顯式錯(cuò)誤信息。

我們要做的就是創(chuàng)建一個(gè)新的組件,實(shí)現(xiàn)IExtenderProvider接口,向控件(Button、Label等)提供速選的功能。這個(gè)組件我已經(jīng)完成了,名字叫FastSelect,先不考慮實(shí)現(xiàn)原理、如何實(shí)現(xiàn),我們先看下如何使用吧:

FastSelect是一個(gè)組件,會(huì)自動(dòng)顯示在工具箱中,將其拖入窗體,將會(huì)顯示在設(shè)計(jì)器下方。

FastSelect組件

圖2

選中全選按鈕(label1),屬性顯示窗口如下圖:

FastSelect2

圖3

分組中出現(xiàn)了一個(gè)新的分組:速選,其中有如上圖兩個(gè)屬性,***個(gè)屬性用于選擇選項(xiàng)控件,第二個(gè)屬性用于確定選擇方式(全選還是清空)。設(shè)置兩個(gè)屬性的值如上圖,完成后label1就可以全選分類中的所有選項(xiàng)了。

簡(jiǎn)單說(shuō)來(lái),只需要向窗體置入一個(gè)控件(Button、Label、LinkLabel、Picture),簡(jiǎn)單設(shè)置兩個(gè)屬性,這個(gè)控件就自動(dòng)具有了速選功能,不需要任何代碼。當(dāng)然得借助FastSelect組件。

 

這么神奇,是如何實(shí)現(xiàn)的呢?要從IExtenderProvider接口說(shuō)起,這個(gè)接口可以向其他組件提供屬性,如上圖中的兩個(gè)屬性。有這里有兩點(diǎn)要說(shuō)明一下:

  1. 向其它組件提供屬性,這個(gè)可以限定,比如僅只向Button提供。
  2. 提供屬性并不是真正給其他組件加上新的屬性,只是在WinForm設(shè)計(jì)時(shí),在PropertyGrid中顯示額外屬性(后面會(huì)詳說(shuō))。

我們來(lái)看下FastSelect是如何實(shí)現(xiàn)的: 

  1. public enum SelectionType  
  2.   {  
  3.       清空,  
  4.       反選,  
  5.       全選,  
  6.   }  
  7.  
  8.   [ProvideProperty("SelectionSource", typeof(Control))]  
  9.   [ProvideProperty("SelectionType", typeof(Control))]  
  10.   public partial class FastSelect : Component, IExtenderProvider  
  11.   {  
  12.       
  13.      public bool CanExtend(object extendee)  
  14.       {  
  15.           if (extendee == null) return false;  
  16.          if (extendee is Button || extendee is Label || extendee is PictureBox) return true;  
  17.          return false;  
  18.       }  
  19.  
  20.      [Category("速選"), Description("速選源控件"), Localizable(true)]  
  21.       public Control GetSelectionSource(Control control)  
  22.       {  
  23.           ...  
  24.       }  
  25.  
  26.      public void SetSelectionSource(Control control, Control selectionSource)  
  27.       {  
  28.           ...  
  29.       }  
  30.  
  31.  
  32.       [Category("速選"), Description("速選方式"), DefaultValue(SelectionType.清空), Localizable(true)]  
  33.       public SelectionType GetSelectionType(Control control)  
  34.       {             
  35.      }  
  36.      public void SetSelectionType(Control control, SelectionType selectionType)  
  37.      {      
  38.      ...  
  39.     }  
  40.      ...  
  41.       }  

SelectionType枚舉不必多說(shuō),我們來(lái)看FastSelect,它繼承至Component,實(shí)現(xiàn)了IExtenderProvider接口。

CanExtend是IExtenderProvider接口的***成員,它用來(lái)標(biāo)識(shí)可以給那些組件進(jìn)行擴(kuò)展,上面的代碼中我們限定了只可以給Button、Label、PictureBox進(jìn)行擴(kuò)展,也就是說(shuō)其它類型的控件在屬性窗口中是看不到速選屬性的。CanExtend中沒(méi)有LinkLabel,是因?yàn)長(zhǎng)inkLabel是Label的子類,Label有的它也會(huì)自動(dòng)擁有。

Get(Set) SelectionSource、Get(Set)SelectionType有點(diǎn)類似屬性的get/set吧,只不過(guò)多了一個(gè)參數(shù)(***個(gè)參數(shù)control),傳入這個(gè)參數(shù)的是要進(jìn)行屬性擴(kuò)展的控件,還是讓我們看一下WinForm生成的代碼吧(在Form1.generated.cs中)

  1. this.fastSelect.SetSelectionSource(this.label1, this.categoriesListBox);  
  2.  this.fastSelect.SetSelectionType(this.label1, SelectionType.全選); 

對(duì)照?qǐng)D三,應(yīng)該明白“提供屬性”的真正含義了吧。

我們?cè)賮?lái)看是如何實(shí)現(xiàn)選擇的,先看代碼片段:

  1. public partial class FastSelect : Component, IExtenderProvider  
  2.     {  
  3.         private Dictionary sourceControlsDict;  
  4.         private Dictionary typeDict;  
  5.  
  6.       public void SetSelectionSource(Control control, Control selectionSource)  
  7.       {  
  8.               
  9.            sourceControlsDict.Add(control, selectionSource);  
  10.              control.Click += new EventHandler(control_Click);  
  11.              
  12.        }  
  13.  
  14.        public void SetSelectionType(Control control, SelectionType selectionType)  
  15.       {  
  16.             
  17.            typeDict.Add(control, selectionType);  
  18.              
  19.         }  
  20.  
  21.         void control_Click(object sender, EventArgs e)  
  22.          {  
  23.             Control control = sender as Control;  
  24.            Control selectionSource = sourceControlsDict[control];  
  25.             SelectionType selectType = typeDict[control];  
  26.  
  27.              if (selectionSource is DataGridView)  
  28.             {  
  29.                  DataGridView dataGridView = selectionSource as DataGridView;  
  30.                  foreach (DataGridViewRow row in dataGridView.Rows)  
  31.                      row.Selected = ChangeSelected(row.Selected, selectType);  
  32.              }  
  33.               
  34.          }  
  35.    
  36.         private bool ChangeSelected(bool isSelected, SelectionType type)  
  37.          {  
  38.            if (type == SelectionType.清空) return false;  
  39.             else if (type == SelectionType.全選) return true;  
  40.            else if (type == SelectionType.反選) return !isSelected;  
  41.             else throw new NotImplementedException();  
  42.          }  
  43.            
  44.     } 

一個(gè)窗體上只需要一個(gè)FastSelect組件,但它要為其它多個(gè)組件提供屬性,我們這里使用Dictionary保存這些屬性。

設(shè)置控件SelectionSource屬性時(shí),其實(shí)是調(diào)用了SetSelectionSource方法,其中我們?yōu)榭丶?cè)了Click事件,control_Click中根據(jù)不同的選項(xiàng)控件的類型(DataGridView、CheckedListBox等)和選擇類型進(jìn)行相應(yīng)的處理。這樣應(yīng)該明白了吧。

代碼比較長(zhǎng),就不發(fā)在文章中了,此處下載。(大部分時(shí)間花在文章上了,代碼沒(méi)太測(cè)試,可能存在問(wèn)題,如發(fā)現(xiàn)請(qǐng)告知,謝謝了)。

原文標(biāo)題:構(gòu)建WinForm 通用速選(全選、反選、清空)組件

鏈接:http://www.cnblogs.com/ldp615/archive/2009/11/29/WinForm_FastSelect_Component.html

責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2022-02-08 15:55:00

Vue組件庫(kù)Vue Demi

2010-06-13 09:15:16

WinForm窗體

2009-10-13 11:32:19

Winform假框架

2012-12-11 10:15:02

Winform開發(fā)框架

2021-06-22 09:44:56

鴻蒙HarmonyOS應(yīng)用

2010-08-18 09:58:33

WinFormASP.NET

2012-07-11 15:54:59

canvas

2009-04-13 09:23:41

.NET 2.0Winform經(jīng)驗(yàn)

2024-10-24 17:13:55

WinformUI多線程

2010-02-03 15:59:08

Android組件

2013-07-04 09:33:26

BGP選路

2020-02-21 11:08:24

瀏覽器HTML設(shè)計(jì)

2009-11-26 14:37:37

Visual Stud

2009-10-10 14:54:44

treeView1控件

2021-04-23 16:08:08

鴻蒙HarmonyOS應(yīng)用

2025-02-10 00:14:00

2011-08-16 19:27:53

ORACLE GOLD

2017-03-13 16:30:50

React Route構(gòu)建JavaScript

2025-11-18 09:30:57

2010-09-09 13:34:55

家庭網(wǎng)絡(luò)組建
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91露出在线| 日本一区二区黄色| 国产老妇伦国产熟女老妇视频| 日韩精品永久网址| 717成人午夜免费福利电影| 中文字幕超清在线免费观看| 性少妇videosexfreexxx片| 夜夜嗨一区二区三区| 国产午夜一区二区| 99精品视频免费版的特色功能| 成人影音在线| 蜜臀av国产精品久久久久| 久久精品影视伊人网| 美女久久久久久久久| 秋霞影院午夜丰满少妇在线视频| 国产一区二区三区免费观看| 国内免费久久久久久久久久久| 亚洲理论片在线观看| 麻豆精品在线| 日韩欧美亚洲范冰冰与中字| 国产精品啪啪啪视频| 亚洲图片欧美在线| 亚洲精品影视| 精品激情国产视频| 中国毛片在线观看| 在这里有精品| 538在线一区二区精品国产| 3d动漫一区二区三区| 内射无码专区久久亚洲| 日本中文一区二区三区| 久久久久久成人精品| 婷婷丁香综合网| 竹菊久久久久久久| 精品人在线二区三区| 污污的网站18| 大胆人体一区| 亚洲va天堂va国产va久| 懂色av粉嫩av蜜臀av| 国产成人天天5g影院在线观看| 丰满少妇久久久久久久| 91久久久久久久| 无码人妻丰满熟妇区五十路 | 欧美日韩成人激情| 亚洲中文字幕无码不卡电影| 波多野结衣在线高清| 亚洲色图清纯唯美| 91免费版网站入口| 国产精品国产精品国产| 人人狠狠综合久久亚洲婷| 亚洲精品美女在线观看播放| 第一页在线视频| 不卡一区视频| 欧美日韩成人在线| 天堂av2020| 久久人体av| 一区二区三区欧美亚洲| 男女啪啪的视频| 欧美性videos| 中文字幕一区二区不卡| 亚洲欧美精品在线观看| 国产高清免费av在线| 国产欧美一区二区三区在线看蜜臀| 久久精品中文字幕一区二区三区 | 91传媒免费观看| 四虎成人精品永久免费av九九| 在线国产精品播放| 视频国产一区二区| 中文字幕一区二区三区久久网站| 日韩欧美亚洲国产另类| 永久av免费在线观看| 国产精选久久| 精品久久久久久久人人人人传媒| 911亚洲精选| 风间由美一区二区av101| 亚洲国产91精品在线观看| av网站有哪些| 欧美精选一区二区三区| 久久精品99无色码中文字幕| 一区视频免费观看| 综合伊思人在钱三区| 精品欧美国产一区二区三区| 日韩中文字幕三区| 777午夜精品电影免费看| 欧美日韩精品一二三区| а 天堂 在线| 国产精品美女在线观看直播| 国产丝袜高跟一区| youjizz亚洲女人| 久久久久免费av| 97精品一区二区视频在线观看| 在线观看亚洲天堂| 免费人成精品欧美精品 | 一区二区三区四区免费观看| 欧美人体视频xxxxx| 五月天激情小说综合| 亚洲欧洲国产精品久久| gogo在线高清视频| 精品久久久久久久久久久久久久| 一本久道中文无码字幕av| 国产盗摄一区二区| 欧美日韩视频免费播放| 奇米影视四色在线| 99久久香蕉| 国产午夜精品一区二区三区 | 国产野外作爱视频播放| 亚洲精品不卡在线观看 | 日本视频不卡| 亚洲成va人在线观看| 日韩av片网站| 欧美成人专区| 久久天堂av综合合色| 国产毛片aaa| 激情成人综合网| 免费久久一级欧美特大黄| 黄色在线免费| 日本精品视频一区二区三区| 国产性猛交96| 91精品一区二区三区综合| 欧美专区在线播放| 懂色av.com| 久热成人在线视频| 久久资源av| 蜜臀av在线| 欧美喷潮久久久xxxxx| 97超碰在线资源| 亚洲黄色大片| 99九九电视剧免费观看| 成年人在线观看视频| 精品久久久久久久久久久久| 亚洲黄色小说在线观看| 我不卡影院28| 国产精自产拍久久久久久| 免费在线视频你懂得| 亚洲成a人片综合在线| 日韩欧美中文视频| 欧美激情成人| 国产欧美精品在线| 九色蝌蚪在线| 欧美午夜久久久| 国产精品久久久久久亚洲av| 亚洲女同中文字幕| 国产日韩在线一区| 日韩黄色影院| 欧美日韩亚洲综合一区 | 欧美在线视频精品| 91日韩在线专区| 男女猛烈激情xx00免费视频| 日韩精品视频中文字幕| 久久久精品国产一区二区| 中文字幕 人妻熟女| 欧美经典三级视频一区二区三区| 六月丁香婷婷激情| 台湾色综合娱乐中文网| 51视频国产精品一区二区| 亚洲欧美日韩成人在线| 天天综合网天天综合色| 成人手机在线免费视频| 国产亚洲在线观看| 国产精品日日摸夜夜添夜夜av| 天堂а在线中文在线无限看推荐| 国产亚洲女人久久久久毛片| 欧美日韩精品在线一区二区| 欧美午夜18电影| 18久久久久久| 黄色免费在线播放| 欧美亚洲愉拍一区二区| 制服丝袜av在线| 欧美日本三区| 国产日韩精品推荐| yjizz视频网站在线播放| 日本黄色一区二区| 蜜桃av免费观看| 国产乱人伦偷精品视频不卡| 国产在线一区二| 九色porny丨首页入口在线| 欧美色偷偷大香| 91香蕉国产视频| 国产精品一卡二卡在线观看| 很污的网站在线观看| 琪琪久久久久日韩精品| 国产精品福利片| 午夜精品久久久久久久99老熟妇| 亚洲狠狠丁香婷婷综合久久久| av电影中文字幕| 国产一区二区精品| 婷婷亚洲婷婷综合色香五月| 999精品视频在线观看| 欧美高清视频在线播放| 中文字幕男人天堂| 亚洲色图视频免费播放| 日本免费福利视频| 麻豆精品精品国产自在97香蕉| 看一级黄色录像| 亚洲ab电影| 亚洲精品免费av| 筱崎爱全乳无删减在线观看| 日韩综合视频在线观看| 黑人精品一区二区三区| 欧美这里有精品| 熟女俱乐部一区二区| 激情六月婷婷久久| 欧美色图色综合| 久久久久免费av| 欧美不卡福利| 日韩区一区二| 国产精品久久久久久久av电影| 国产一二三区在线观看| 日韩av中文字幕在线| 国产精品丝袜黑色高跟鞋| 婷婷中文字幕一区三区| 国产探花在线视频| 久久天堂av综合合色蜜桃网| 天天综合天天添夜夜添狠狠添| 在线精品观看| 99亚洲精品视频| 国产精品美女久久久久久不卡| 99www免费人成精品| xxxxx.日韩| 欧美亚洲成人网| 色呦呦在线视频| 中文字幕最新精品| 国产在线视频你懂得| 精品国产伦一区二区三区观看方式| 91在线视频免费播放| 亚洲aaa精品| 久久久久99精品成人片毛片| 高清国产午夜精品久久久久久| www.99av.com| 久久成人一区| 播放灌醉水嫩大学生国内精品| 午夜日韩激情| 一区二区视频在线观看| 国产精品视频一区二区三区四蜜臂| 风间由美久久久| 午夜日韩影院| 亚洲aa中文字幕| 亚洲精品大片| 国产欧美精品一区二区| 精品176极品一区| 国产精品wwww| 亚洲成人va| 国产精品色婷婷视频| 日本电影欧美片| 欧美又大又粗又长| 日本蜜桃在线观看视频| 91国产美女在线观看| av男人的天堂在线观看| 欧美国产视频一区二区| 在线不卡日本v二区707| 日韩av资源在线播放| 国产 欧美 精品| 精品国产制服丝袜高跟| 精品久久国产视频| 日韩欧美一级二级三级久久久| 国产精品一区二区人人爽| 欧美日韩二区三区| 91丨九色丨丰满| 91精品国产综合久久久蜜臀粉嫩| 一级aaaa毛片| 日韩一区和二区| 探花视频在线观看| 欧美日韩免费观看中文| 男人天堂av在线播放| 日本乱码高清不卡字幕| 最近中文字幕在线观看视频| 色成年激情久久综合| 久久永久免费视频| 欧美日韩卡一卡二| 国产裸体无遮挡| 精品久久久久久亚洲综合网| 人成网站在线观看| 亚洲毛茸茸少妇高潮呻吟| 国产人成在线视频| 日韩中文字幕在线看| 欧美男男video| 97成人精品视频在线观看| 东京一区二区| 国产日韩欧美在线观看| 亚洲日本va午夜在线电影| 国产一区二区三区四区五区在线| 亚洲裸色大胆大尺寸艺术写真| 欧美在线视频二区| 91精品综合| 欧美一区二区三区爽大粗免费| 日本视频免费一区| 国产伦精品一区二区三区妓女下载| 成人黄色a**站在线观看| 欧美激情aaa| 亚洲乱码国产乱码精品精可以看| 国产一级片久久| 日本道在线观看一区二区| 国产精品区在线观看| 日韩成人在线电影网| 韩国av网站在线| 欧美有码在线视频| 精品久久免费| 欧美一区二区福利| 欧美日韩亚洲一区| 无码人妻精品一区二区三区66| 国产乱理伦片在线观看夜一区| 欧美色图亚洲激情| 伊人性伊人情综合网| 香蕉污视频在线观看| 欧美变态口味重另类| av电影在线观看| 性色av香蕉一区二区| 亚洲免费一区| 青青成人在线| 韩国自拍一区| 五月激情婷婷在线| 91污在线观看| 激情视频在线播放| 欧美三级中文字幕| 无码精品人妻一区二区三区影院| 久久精品男人天堂| 日韩影片中文字幕| 国产精品三区四区| 亚洲成人免费| 波多野结衣天堂| 2020国产精品自拍| 国产一级二级三级视频| 欧美日韩一区成人| 精品视频二区| 2020欧美日韩在线视频| 51亚洲精品| 国产日本欧美在线| 全国精品久久少妇| 波多野结衣av在线免费观看| 亚洲一区免费视频| 国产aⅴ爽av久久久久成人| 中文字幕国内精品| 另类中文字幕国产精品| 乱一区二区三区在线播放| 亚洲二区视频| 国产精久久久久| 亚洲精品福利视频网站| 国产精品乱码久久久| 色婷婷av一区二区三区久久| 香蕉视频亚洲一级| 欧美精品一区二区三区在线看午夜 | 欧美成人有码| 性欧美在线视频| 国产精品久久久久久久久快鸭| 国产日韩久久久| 一区二区福利视频| 三上悠亚亚洲一区| 欧洲亚洲一区| 日日夜夜免费精品视频| 熟女高潮一区二区三区| 在线亚洲精品福利网址导航| 九色在线视频蝌蚪| 国产精品扒开腿做爽爽爽视频 | 玖玖在线播放| 精品视频一区在线| 国产精品永久| 久久丫精品忘忧草西安产品| 91高清视频免费看| 在线观看av的网站| 国产日韩欧美日韩大片| 久久久久久久久久久9不雅视频| 女同激情久久av久久| 亚洲色图20p| www.蜜桃av.com| 久久久午夜视频| 天堂av一区二区三区在线播放| 日韩精品视频久久| 国产色产综合产在线视频| 中文字幕欧美色图| 久久久国产精品视频| 综合中文字幕| 国产特级黄色大片| 国产亚洲综合在线| 91精品国产综合久| 欧美高清视频在线播放| 亚洲欧洲免费| 亚洲欧美日韩综合网| 一区二区在线观看av| 无码精品视频一区二区三区| 日韩av片电影专区| 国产精品一区免费在线| 欧美激情亚洲天堂| 91丨porny丨国产| 中文字幕在线日亚洲9| 美女撒尿一区二区三区| 久久a爱视频| 国产九九热视频| 亚洲国产综合91精品麻豆| 九一在线视频| 亚洲自拍偷拍视频| 亚洲欧美视频| 欧美黄色aaa| 精品中文视频在线| 国产精品va视频| 久久久一本二本三本| 国产精品欧美精品| 人妻丰满熟妇av无码区hd| 国产精品久久久久久久久男| 午夜久久美女| 成人在线手机视频| 精品国产亚洲一区二区三区在线观看|