日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

winform 异步弹窗窗体_玩转控件:重写/重绘Dev中MessageBox弹窗控件

發布時間:2025/3/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 winform 异步弹窗窗体_玩转控件:重写/重绘Dev中MessageBox弹窗控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
很久沒有更新博客了,本想著直接發一篇《手撕ERP》系列,從控件重寫、重繪,到框架搭建,再到部分模塊實現+業務的。但是每次動手的時候,都覺得難以下手。直接從數據庫設計開始吧,模塊設計還沒定下來,從模塊設計開始吧,winform自帶控件和DevExpress控件用起來布局實在太難看了。算了,從低做起吧。接著6-7年前的玩轉控件系列開始,工欲善其事必先利其器!利器備好,框架搭建完畢,模塊設計就是拖控件而已!Talk is Cheap,Show me the Code!????????首先,項目中新建一個窗體(用于后面的彈窗載體),按自己意愿做好布局效果,當然關于皮膚方面,大家可以應用界內很成熟的皮膚控件(具體就不列舉了,避免打廣告的嫌疑),或者后期自己代碼實現。本篇主要介紹如何重寫/重繪控件,磨自己的利器,至于利器上貼個動漫圖片還是其他花里胡哨的圖案,請根據自己的喜好來。大概效果如圖(有潔癖的請自己細心布局):

窗體后臺代碼分析如下:首先窗體集成DevExpress: public partial class frm_MessageBox : DevExpress.XtraEditors.XtraForm其余初始化動作代碼如下,備注很詳細就不一一列舉了: /// /// 確定按鈕/// private SimpleButton btn_OK;/// /// 取消按鈕/// private SimpleButton btn_Cancel;/// /// 中止按鈕/// private SimpleButton btn_Abort;/// /// 重試按鈕/// private SimpleButton btn_Retry;/// /// 忽略按鈕/// private SimpleButton btn_Ignore;/// /// 是按鈕/// private SimpleButton btn_Yes;/// /// 否按鈕/// private SimpleButton btn_No;/// /// 要在消息框中顯示的文本/// private string text;/// /// 要在消息框的標題欄中顯示的文本/// private string caption;/// /// System.Windows.Forms.MessageBoxButtons 值之一,可指定在消息框中顯示哪些按鈕/// private MessageBoxButtons buttons;/// /// System.Windows.Forms.MessageBoxIcon 值之一,它指定在消息框中顯示哪個圖標/// private MessageBoxIcon icon;/// /// System.Windows.Forms.MessageBoxDefaultButton 值之一,可指定消息框中的默認按鈕。/// private MessageBoxDefaultButton defaultButton;/// /// 消息彈出框參數實體/// MessageBoxModel _MessageBoxModel = default(MessageBoxModel);界面初始化:/// /// 支持修改彈出框的按鈕標題描述/// /// public frm_MessageBox(MessageBoxModel pMessageBoxModel){ InitializeComponent(); if (pMessageBoxModel == null) pMessageBoxModel = new MessageBoxModel(); this.ControlBox = false; this.text = pMessageBoxModel.MsgText; this.Text = pMessageBoxModel.FormText ?? "Stephen's UserControl"; this.caption = pMessageBoxModel.FormText; this.buttons = pMessageBoxModel.MsgButton; this.icon = pMessageBoxModel.MsgIcon; this.defaultButton = pMessageBoxModel.MsgxDefaultButton; this._MessageBoxModel = pMessageBoxModel;}/// /// 顯示一個具有指定文本、標題、按鈕、圖標、默認按鈕的消息框/// /// /// /// /// /// public frm_MessageBox(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton){ InitializeComponent(); this.ControlBox = false; this.text = text; this.Text = caption ?? "Stephen's UserControl"; this.caption = caption; this.buttons = buttons; this.icon = icon; this.defaultButton = defaultButton;}窗體Load事件綁定彈窗按鈕事件:private void frm_MessageBox_Load(object sender, EventArgs e){ int pannelLength = panelButton.Size.Width; switch (buttons) { case MessageBoxButtons.OK: #region OK this.btn_OK = new SimpleButton(); this.panelButton.SuspendLayout(); //btn_OK this.btn_OK.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_OK.Name = "btn_OK"; this.btn_OK.Size = new System.Drawing.Size(75, 27); this.btn_OK.Location = new Point(pannelLength - 85, 10); this.btn_OK.TabIndex = 0; if (_MessageBoxModel != null) this.btn_OK.Text = _MessageBoxModel.YesButtonText; else this.btn_OK.Text = sysClass.ssLoadMsgOrDefault("SYS000001", "確定(O)");//確定(O) this.btn_OK.Margin = new Padding(0, 2, 2, 2); this.btn_OK.Click += btn_OK_Click; this.panelButton.Controls.Add(this.btn_OK); this.panelButton.ResumeLayout(); #endregion break; case MessageBoxButtons.OKCancel: #region OKCancel this.btn_OK = new SimpleButton(); this.btn_Cancel = new SimpleButton(); this.panelButton.SuspendLayout(); //btn_OK this.btn_OK.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_OK.Name = "btn_OK"; this.btn_OK.Size = new System.Drawing.Size(75, 27); this.btn_OK.Location = new Point(pannelLength - 170, 10); this.btn_OK.TabIndex = 0; if (_MessageBoxModel != null) this.btn_OK.Text = _MessageBoxModel.YesButtonText; else this.btn_OK.Text = sysClass.ssLoadMsgOrDefault("SYS000001", "確定(O)");//確定(O) this.btn_OK.Margin = new Padding(0, 2, 2, 2); this.btn_OK.Click += btn_OK_Click; this.panelButton.Controls.Add(this.btn_OK); //btn_Cancel this.btn_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Cancel.Name = "btn_Cancel"; this.btn_Cancel.Size = new System.Drawing.Size(75, 27); this.btn_Cancel.Location = new Point(pannelLength - 85, 10); this.btn_Cancel.TabIndex = 1; if (_MessageBoxModel != null) this.btn_Cancel.Text = _MessageBoxModel.CancleButtonText; else this.btn_Cancel.Text = sysClass.ssLoadMsgOrDefault("SYS000002", "取消(C)");//取消(C) this.btn_Cancel.Margin = new Padding(0, 2, 2, 2); this.btn_Cancel.Click += btn_Cancel_Click; this.panelButton.Controls.Add(this.btn_Cancel); this.panelButton.ResumeLayout(); if (defaultButton == MessageBoxDefaultButton.Button1) { this.btn_OK.Select(); } else { this.btn_Cancel.Select(); } #endregion break; case MessageBoxButtons.AbortRetryIgnore: #region AbortRetryIgnore this.btn_Abort = new SimpleButton(); this.btn_Retry = new SimpleButton(); this.btn_Ignore = new SimpleButton(); this.panelButton.SuspendLayout(); //btn_Abort this.btn_Abort.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Abort.Name = "btn_Abort"; this.btn_Abort.Size = new System.Drawing.Size(75, 27); this.btn_Abort.Location = new Point(pannelLength - 255, 10); this.btn_Abort.TabIndex = 0; this.btn_Abort.Text = sysClass.ssLoadMsgOrDefault("SYS000003", "中止(A)");//中止(A) this.btn_Abort.Margin = new Padding(0, 2, 2, 2); this.btn_Abort.Click += btn_Abort_Click; this.panelButton.Controls.Add(this.btn_Abort); //btn_Retry this.btn_Retry.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Retry.Name = "btn_Retry"; this.btn_Retry.Size = new System.Drawing.Size(75, 27); this.btn_Retry.Location = new Point(pannelLength - 170, 10); this.btn_Retry.TabIndex = 1; this.btn_Retry.Text = sysClass.ssLoadMsgOrDefault("SYS000004", "重試(R)");//重試(R) this.btn_Retry.Margin = new Padding(0, 2, 2, 2); this.btn_Retry.Click += btn_Retry_Click; this.panelButton.Controls.Add(this.btn_Retry); //btn_Ignore this.btn_Ignore.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Ignore.Name = "btn_Ignore"; this.btn_Ignore.Size = new System.Drawing.Size(75, 27); this.btn_Ignore.Location = new Point(pannelLength - 85, 10); this.btn_Ignore.TabIndex = 2; this.btn_Ignore.Text = sysClass.ssLoadMsgOrDefault("SYS000005", "忽略(I)");//忽略(I) this.btn_Ignore.Margin = new Padding(0, 2, 2, 2); this.btn_Ignore.Click += btn_Ignore_Click; this.panelButton.Controls.Add(this.btn_Ignore); this.panelButton.ResumeLayout(); if (defaultButton == MessageBoxDefaultButton.Button1) { this.btn_Abort.Select(); } else if (defaultButton == MessageBoxDefaultButton.Button2) { this.btn_Retry.Select(); } else if (defaultButton == MessageBoxDefaultButton.Button3) { this.btn_Ignore.Select(); } #endregion break; case MessageBoxButtons.YesNoCancel: #region YesNoCancel this.btn_Yes = new SimpleButton(); this.btn_No = new SimpleButton(); this.btn_Cancel = new SimpleButton(); this.panelButton.SuspendLayout(); //btn_Yes this.btn_Yes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Yes.Name = "btn_Yes"; this.btn_Yes.Size = new System.Drawing.Size(75, 27); this.btn_Yes.Location = new Point(pannelLength - 255, 10); this.btn_Yes.TabIndex = 0; if (_MessageBoxModel != null) this.btn_Yes.Text = _MessageBoxModel.YesButtonText; else this.btn_Yes.Text = sysClass.ssLoadMsgOrDefault("SYS000006", "是(Y)");//是(Y) this.btn_Yes.Margin = new Padding(0, 2, 2, 2); this.btn_Yes.Click += btn_Yes_Click; this.panelButton.Controls.Add(this.btn_Yes); //btn_No this.btn_No.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_No.Name = "btn_No"; this.btn_No.Size = new System.Drawing.Size(75, 27); this.btn_No.Location = new Point(pannelLength - 170, 10); this.btn_No.TabIndex = 1; if (_MessageBoxModel != null) this.btn_No.Text = _MessageBoxModel.NoButtonText; else this.btn_No.Text = sysClass.ssLoadMsgOrDefault("SYS000007", "否(N)");//否(N) this.btn_No.Margin = new Padding(0, 2, 2, 2); this.btn_No.Click += btn_No_Click; this.panelButton.Controls.Add(this.btn_No); this.btn_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Cancel.Name = "btn_Cancel"; this.btn_Cancel.Size = new System.Drawing.Size(75, 27); this.btn_Cancel.Location = new Point(pannelLength - 85, 10); this.btn_Cancel.TabIndex = 2; if (_MessageBoxModel != null) this.btn_Cancel.Text = _MessageBoxModel.CancleButtonText; else this.btn_Cancel.Text = sysClass.ssLoadMsgOrDefault("SYS000002", "取消(C)");//取消(C) this.btn_Cancel.Margin = new Padding(0, 2, 2, 2); this.btn_Cancel.Click += btn_Cancel_Click; this.panelButton.Controls.Add(this.btn_Cancel); this.panelButton.ResumeLayout(); if (defaultButton == MessageBoxDefaultButton.Button1) { this.btn_Yes.Select(); } else if (defaultButton == MessageBoxDefaultButton.Button2) { this.btn_No.Select(); } else if (defaultButton == MessageBoxDefaultButton.Button3) { this.btn_Cancel.Select(); } #endregion break; case MessageBoxButtons.YesNo: #region YesNo this.btn_Yes = new SimpleButton(); this.btn_No = new SimpleButton(); this.panelButton.SuspendLayout(); //btn_Yes this.btn_Yes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Yes.Name = "btn_Yes"; this.btn_Yes.Size = new System.Drawing.Size(75, 27); this.btn_Yes.Location = new Point(pannelLength - 170, 10); this.btn_Yes.TabIndex = 0; if (_MessageBoxModel != null) this.btn_Yes.Text = _MessageBoxModel.YesButtonText; else this.btn_Yes.Text = sysClass.ssLoadMsgOrDefault("SYS000006", "是(Y)");//是(Y) this.btn_Yes.Margin = new Padding(0, 2, 2, 2); this.btn_Yes.Click += btn_Yes_Click; this.panelButton.Controls.Add(this.btn_Yes); //btn_No this.btn_No.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_No.Name = "btn_No"; this.btn_No.Size = new System.Drawing.Size(75, 27); this.btn_No.Location = new Point(pannelLength - 85, 10); this.btn_No.TabIndex = 1; if (_MessageBoxModel != null) this.btn_No.Text = _MessageBoxModel.NoButtonText; else this.btn_No.Text = sysClass.ssLoadMsgOrDefault("SYS000007", "否(N)");//否(N) this.btn_No.Margin = new Padding(0, 2, 2, 2); this.btn_No.Click += btn_No_Click; this.panelButton.Controls.Add(this.btn_No); this.panelButton.ResumeLayout(); if (defaultButton == MessageBoxDefaultButton.Button1) { this.btn_Yes.Select(); } else { this.btn_No.Select(); } #endregion break; case MessageBoxButtons.RetryCancel: #region RetryCancel this.btn_Retry = new SimpleButton(); this.btn_Cancel = new SimpleButton(); this.panelButton.SuspendLayout(); //btn_Retry this.btn_Retry.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Retry.Name = "btn_Retry"; this.btn_Retry.Size = new System.Drawing.Size(75, 27); this.btn_Retry.Location = new Point(pannelLength - 170, 10); this.btn_Retry.TabIndex = 0; this.btn_Retry.Text = sysClass.ssLoadMsgOrDefault("SYS000004", "重試(R)");//重試(R) this.btn_Retry.Margin = new Padding(0, 2, 2, 2); this.btn_Retry.Click += btn_Retry_Click; this.panelButton.Controls.Add(this.btn_Retry); //btn_Cancel this.btn_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | (System.Windows.Forms.AnchorStyles.Right))))); this.btn_Cancel.Name = "btn_Cancel"; this.btn_Cancel.Size = new System.Drawing.Size(75, 27); this.btn_Cancel.Location = new Point(pannelLength - 85, 10); this.btn_Cancel.TabIndex = 1; this.btn_Cancel.Text = sysClass.ssLoadMsgOrDefault("SYS000002", "取消(C)");//取消(C) this.btn_Cancel.Margin = new Padding(0, 2, 2, 2); this.btn_Cancel.Click += btn_Cancel_Click; this.panelButton.Controls.Add(this.btn_Cancel); this.panelButton.ResumeLayout(); if (defaultButton == MessageBoxDefaultButton.Button1) { this.btn_Retry.Select(); } else { this.btn_Cancel.Select(); } #endregion break; } this.Text = caption; this.lblMsg.Text = text; int moreHeight = this.lblMsg.Height - 35; if (moreHeight > 0) { this.Height += moreHeight; } }代碼比較簡單,就是把初始化按鈕事件和把初始化的彈窗中的按鈕添加到布局中的Panel容器里面和一些細節調整,關于方法sysClass.ssLoadMsgOrDefault目前可以不用在意,是我的通用類庫,主要是用來實現國際化的,后續會斷斷續續為大家介紹這塊代碼。按鈕綁定事件和鍵盤響應事件代碼如下:private void PaintIcon(Icon icon, int x, int y) { Graphics g = this.CreateGraphics(); g.DrawIcon(icon, x, y); } void btn_No_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.No; } void btn_Yes_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Yes; } void btn_Ignore_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Ignore; } void btn_Retry_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Retry; } void btn_Abort_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Abort; } void btn_Cancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; } void btn_OK_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; } private void frm_MessageBox_KeyUp(object sender, KeyEventArgs e) { if (e.Modifiers == Keys.None) { if (e.KeyCode == Keys.O && btn_OK != null) { btn_OK_Click(null, null); } if (e.KeyCode == Keys.C && btn_Cancel != null) { btn_Cancel_Click(null, null); } if (e.KeyCode == Keys.A && btn_Abort != null) { btn_Abort_Click(null, null); } if (e.KeyCode == Keys.R && btn_Retry != null) { btn_Retry_Click(null, null); } if (e.KeyCode == Keys.I && btn_Ignore != null) { btn_Ignore_Click(null, null); } if (e.KeyCode == Keys.Y && btn_Yes != null) { btn_Yes_Click(null, null); } if (e.KeyCode == Keys.N && btn_No != null) { btn_No_Click(null, null); } } if (e.Modifiers == Keys.Control && e.KeyCode == Keys.C) { string mCopyText = "-------------------------------"; mCopyText += "\n"; mCopyText += lblMsg.Text + "\n"; mCopyText += "-------------------------------"; Clipboard.SetText(mCopyText); } } private void frm_MessageBox_Paint(object sender, PaintEventArgs e) { Icon msgIcon; switch (icon) { case MessageBoxIcon.Error: msgIcon = System.Drawing.SystemIcons.Error; break; case MessageBoxIcon.Question: msgIcon = System.Drawing.SystemIcons.Question; break; case MessageBoxIcon.Exclamation: msgIcon = System.Drawing.SystemIcons.Exclamation; break; default: msgIcon = System.Drawing.SystemIcons.Information; break; } e.Graphics.DrawIcon(msgIcon, 40, 20); }}以及彈窗實體類: /// /// 彈出框實體/// public class MessageBoxModel{ /// /// 彈出框標題 /// public string FormText { get; set; } /// /// 彈出框寬度 /// public int FormWidth { get; set; } /// /// 彈出框高度 /// public int FormHeight { get; set; } /// /// 彈出框消息內容 /// public string MsgText { get; set; } /// /// 文字大小 /// public int FontSize { get; set; } /// /// “是”按鈕標題 /// public string YesButtonText { get; set; } /// /// “否”按鈕標題 /// public string NoButtonText { get; set; } /// /// “取消”按鈕標題 /// public string CancleButtonText { get; set; } /// /// 彈出框類型(提示型、選擇型等) /// public MessageBoxButtons MsgButton = MessageBoxButtons.OK; /// /// 彈出框中顯示的圖標 /// public MessageBoxIcon MsgIcon = MessageBoxIcon.Information; /// /// 彈出框默認選中的按鈕 /// public MessageBoxDefaultButton MsgxDefaultButton = MessageBoxDefaultButton.Button1;細心的讀者會發現,博主在實例彈窗實體的時候,有個語法糖: /// /// 消息彈出框參數實體 /// MessageBoxModel _MessageBoxModel = default(MessageBoxModel);default(T) 這是C# 7.1的關鍵字新用法,主要用法是默認值表達式,default對應各種類型生成默認值列表如下:
類型默認值
任何引用類型null
數值類型0
boolfalse
enum表達式(E)0生成的值,其中E是枚舉標識符
struct通過如下設置生成的值:將所有值類型的字段設置為其默認值,將所有引用類型的字段設置為null?????
可以為null的類型HasValue屬性為false且Value屬性未定義的實例
羅列一下上述列表中常見類型對應的值default(string) // nulldefault(int) // 0default(int?) // nulldefault(dynamic) // nulldefault(DateTime) // 0001/01/01 0:00:00default(DateTime?) // null好了,篇幅有限,具體深入了解請大家自行百度看看微軟文檔的解釋。以上是窗體代碼解析,窗體創建好了,最后一步,創建一個實體類(暫時命名KzxMessageBox)用來調用彈窗的窗體顯示,具體代碼如下:public class KzxMessageBox{ /// /// 標題 /// private static string caption; /// /// 按鈕(默認“OK”) /// private static MessageBoxButtons buttons; /// /// 圖標(默認“information”) /// private static MessageBoxIcon icon; /// /// 默認按鈕(默認“button1”) /// private static MessageBoxDefaultButton defaultButton; /// /// 靜態構造函數,初始化數據 /// static KzxMessageBox() { if (SysVar.loginType == 1) { caption = "Stephen's UserControl"; } else { caption = sysClass.ssLoadMsgOrDefault("SYS000008", "Stephen's UserControl"); } buttons = MessageBoxButtons.OK; icon = MessageBoxIcon.Information; defaultButton = MessageBoxDefaultButton.Button1; } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// 文本 /// public static DialogResult Show(string text) { return Show(text, buttons, icon, defaultButton, null); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框,add by zhang.jz 2019.05.10 /// /// 文本 /// public static DialogResult Show(string text, int pFormWidth = 0, int pFormHeight = 0) { return Show(text, buttons, icon, defaultButton, null, pFormWidth, pFormHeight); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// /// /// public static DialogResult Show(string text, Form parent) { return Show(text, buttons, icon, defaultButton, parent); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// 文本 /// 按鈕 /// public static DialogResult Show(string text, MessageBoxButtons buttons) { return Show(text, buttons, icon, defaultButton, null); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// /// /// /// public static DialogResult Show(string text, MessageBoxButtons buttons, Form parent) { return Show(text, buttons, icon, defaultButton, parent); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// 文本 /// 標題 /// 按鈕 /// 圖標 /// public static DialogResult Show(string text, MessageBoxButtons buttons, MessageBoxIcon icon) { return Show(text, buttons, icon, defaultButton, null); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// /// /// /// /// public static DialogResult Show(string text, MessageBoxButtons buttons, MessageBoxIcon icon, Form parent) { return Show(text, buttons, icon, defaultButton, parent); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// /// /// /// /// public static DialogResult Show(string text, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton) { return Show(text, buttons, icon, defaultButton, null); } /// /// 顯示具有指定文本、標題、按鈕、圖標和默認按鈕的消息框 /// /// 文本 /// 標題 /// 按鈕 /// 圖標 /// 默認按鈕 /// System.Windows.Forms.DialogResult 值之一 public static DialogResult Show(string text, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, Form parent, int pFormWidth = 0, int pFormHeight = 0) { using (frm_MessageBox frm = new frm_MessageBox(text, caption, buttons, icon, defaultButton)) { if (parent == null || parent.IsDisposed) { frm.StartPosition = FormStartPosition.CenterScreen; if (pFormWidth != 0) frm.Width = pFormWidth; if (pFormHeight != 0) frm.Height = pFormHeight; return frm.ShowDialog(); } else { frm.StartPosition = FormStartPosition.CenterParent; if (pFormWidth != 0) frm.Width = pFormWidth; if (pFormHeight != 0) frm.Height = pFormHeight; return frm.ShowDialog(parent); } } } public static DialogResult Show(Form parent, MessageBoxModel pMessageBoxModel) { using (frm_MessageBox frm = new frm_MessageBox(pMessageBoxModel)) { if (parent == null || parent.IsDisposed) { frm.StartPosition = FormStartPosition.CenterScreen; if (pMessageBoxModel.FormWidth != 0) frm.Width = pMessageBoxModel.FormWidth; if (pMessageBoxModel.FormHeight != 0) frm.Height = pMessageBoxModel.FormHeight; return frm.ShowDialog(); } else { frm.StartPosition = FormStartPosition.CenterParent; if (pMessageBoxModel.FormWidth != 0) frm.Width = pMessageBoxModel.FormWidth; if (pMessageBoxModel.FormHeight != 0) frm.Height = pMessageBoxModel.FormHeight; return frm.ShowDialog(parent); } } }}代碼比較簡單,創建一個公共類,以及類型Messagebox的方法重載而已!最后一步,調用: private void button1_Click(object sender, EventArgs e) { KzxMessageBox.Show("this is a test!"); KzxMessageBox.Show("This is a test!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); }一起看下效果:

最后,由于后續所有重寫/重繪控件都在同一個項目使用,而且Dev系統引用文件較多,壓縮后源碼文件仍然很大,如果有需要源碼的朋友,可以微信公眾號聯系博主,源碼可以免費贈予~!有疑問的也可以CALL我一起探討,最最后,如果覺得本篇博文對您或者身邊朋友有幫助的,麻煩點個關注!贈人玫瑰,手留余香,您的支持就是我寫作最大的動力,感謝您的關注,期待和您一起探討!再會!

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的winform 异步弹窗窗体_玩转控件:重写/重绘Dev中MessageBox弹窗控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产一区二区久久久 | 九九视频免费观看视频精品 | 国产色婷婷精品综合在线手机播放 | 操操操影院 | 九九爱免费视频 | 国产青青青 | 久久久久免费精品国产 | 亚洲欧美日韩国产一区二区三区 | 91精品影视 | 欧美国产日韩在线观看 | 精品久久在线 | 中文字幕一区二区三区精华液 | 波多野结衣电影一区二区 | 99超碰在线播放 | 97超碰超碰久久福利超碰 | 亚洲欧美国产精品18p | 99热超碰在线 | 99精品黄色| 亚洲一区二区精品视频 | 又黄又刺激的视频 | 国产99亚洲 | 一级黄色a视频 | 丝袜av网站| 精品国产一区二区在线 | 黄色在线免费观看网站 | 婷婷色在线播放 | 在线观看一级片 | 青草视频在线播放 | 99在线精品视频在线观看 | 91完整视频 | av一本久道久久波多野结衣 | 久久久亚洲精华液 | 色吊丝在线永久观看最新版本 | 欧美激情精品久久久久久变态 | www.色婷婷.com | 色国产精品一区在线观看 | 天天综合中文 | 国产成人精品av久久 | 久久你懂的 | 成人在线观看免费视频 | 久久精品4 | 亚洲无吗天堂 | 国产99久久久久久免费看 | 欧美一级片在线 | 日韩av区 | 中文字幕在线观看网站 | 国产成人高清 | 精品国产一区二区三区久久久蜜月 | 亚洲成人精品久久 | 久久人人爽人人片 | 成人中文字幕在线 | 国产98色在线 | 日韩 | 亚洲国产一区二区精品专区 | 狠狠操天天操 | 人成免费网站 | 亚洲免费av观看 | 综合久久综合久久 | 99精品视频中文字幕 | av 一区二区三区四区 | 日韩理论电影网 | 亚洲精品日韩在线观看 | 日韩一区二区免费视频 | 日日夜夜精品视频天天综合网 | 久久综合免费视频影院 | 亚洲爱爱视频 | 私人av| 国产亚洲精品久久久久动 | 亚洲h视频在线 | 91插插插免费视频 | 国产精品久久久久久久久免费看 | 蜜臀久久99精品久久久无需会员 | 亚洲一区久久久 | 91av电影在线 | 成人亚洲综合 | 欧美韩国日本在线 | 免费在线观看av电影 | 国产色道 | 久久精品理论 | 亚洲国产网站 | 在线视频一区二区 | 日韩欧美在线观看一区二区三区 | 亚洲视频精品 | 99色免费| www.国产视频 | 色先锋av资源中文字幕 | 久久精品艹| 欧美日韩不卡一区二区三区 | 日韩啪啪小视频 | 99色在线观看视频 | 狠狠躁夜夜a产精品视频 | 午夜91在线| 国产不卡毛片 | 欧美精品久久久久 | 亚洲女裸体 | 久久精品99国产国产 | 91激情小视频 | 久久综合给合久久狠狠色 | 天天射天天干天天爽 | 久久露脸国产精品 | 免费美女久久99 | 亚洲精选国产 | 激情黄色一级片 | 91探花国产综合在线精品 | 91精品网站 | 91污污视频在线观看 | 天天摸夜夜添 | 在线国产欧美 | 国产福利在线免费观看 | 黄色精品久久久 | 日韩久久久久久 | 97国产在线播放 | 国产亚洲精品久久久久久无几年桃 | 亚洲欧美综合精品久久成人 | 天天操天天摸天天爽 | 国产永久网站 | 91禁看片| 日本免费一二三区 | 日韩在线观看视频中文字幕 | 国产精品成人一区 | 国产免费一区二区三区最新6 | 日韩大陆欧美高清视频区 | 日韩视频免费观看高清 | 精品国偷自产国产一区 | 国产精品久久久久久久久久免费 | 五月婷婷一级片 | 天天爽夜夜操 | 三级大片网站 | 国产色女 | 国产精品 欧美 日韩 | 久久久久久欧美二区电影网 | 九九九在线观看视频 | 久久久久久中文字幕 | 91网在线看| 精品视频一区在线 | 韩国av三级 | 欧美日韩裸体免费视频 | 国产精品中文字幕在线 | 免费国产在线观看 | 国产成人精品久久 | 免费三级a | 亚洲涩涩色 | 欧美日韩一区二区三区免费视频 | 香蕉视频国产在线观看 | 久色婷婷 | 99免费在线观看 | 国产一级性生活视频 | 九九精品视频在线 | 国产一区久久 | 亚洲精品资源在线观看 | 亚洲成av人片 | 日韩网站免费观看 | 五月婷视频 | 97日日碰人人模人人澡分享吧 | 88av色| 特级a毛片| 黄视频色网站 | 韩国av三级 | 五月综合在线观看 | 日本在线视频一区二区三区 | 国产精品国内免费一区二区三区 | 特级西西444www大精品视频免费看 | 国产精品国产三级国产不产一地 | 8x成人在线 | 91一区二区三区在线观看 | av大片免费| 国产亚洲精品久久久久久网站 | 在线免费性生活片 | 国产亚洲亚洲 | 久久精品综合一区 | 天堂av网址 | 日色在线视频 | 国产女v资源在线观看 | 中文字幕久久亚洲 | 国色综合 | 日韩一区正在播放 | 在线免费观看不卡av | 天天爱天天操天天射 | 天天干,天天射,天天操,天天摸 | 国产精品九九视频 | 日韩精品第一区 | 国产精品午夜久久久久久99热 | 四虎伊人 | 久草在线91 | 欧美九九九 | 91丨九色丨国产女 | av大片网址 | 特黄一级毛片 | 久久久免费毛片 | 精品国产1区二区 | 国产精品久久伊人 | 最新av电影网站 | 极品久久久久久久 | 一级免费观看 | 欧美成年人在线视频 | 国产中文字幕国产 | 在线观看中文字幕av | 免费av免费观看 | 日韩精品视频免费看 | 国内小视频在线观看 | 天天操天天玩 | 亚洲成人av在线电影 | 中文字幕亚洲欧美日韩 | 中国成人一区 | 国产国产人免费人成免费视频 | 天天插天天爱 | 日本中文一区二区 | 国语麻豆 | 色综合久久88色综合天天免费 | 日本精品在线视频 | 久久久久久久久久国产精品 | 国产精品久久久久9999吃药 | 国产黄色av网站 | 日韩在线高清免费视频 | 精精国产xxxx视频在线播放 | 久久婷婷精品视频 | av丝袜制服 | 最近在线中文字幕 | 亚洲欧美在线综合 | 2018精品视频| 黄色片网站av | 国产精品一区二区久久国产 | 看片黄网站 | 五月开心六月伊人色婷婷 | 国产成人高清在线 | 三级动态视频在线观看 | 69夜色精品国产69乱 | 国产又黄又硬又爽 | 成人黄色在线看 | 婷婷九月丁香 | 69国产盗摄一区二区三区五区 | 黄色影院在线播放 | 色国产精品一区在线观看 | 国产一区二区手机在线观看 | 在线va视频 | 瑞典xxxx性hd极品 | 在线观看一级片 | 国产成a人亚洲精v品在线观看 | 中文字幕精品www乱入免费视频 | 成人黄色av免费在线观看 | 国产精品区一区 | 天天爽天天爽天天爽 | 四虎永久免费网站 | 国产九九精品 | 日韩精品久久久久久中文字幕8 | 香蕉视频在线视频 | 青青久视频 | 久久综合色8888 | 亚洲精品视频国产 | 日本中文字幕在线免费观看 | 国内精品美女在线观看 | 麻豆免费看片 | 色婷婷国产在线 | 毛片视频电影 | 日韩精品中文字幕久久臀 | 欧美另类tv| 久久99久久99精品免视看婷婷 | 一级黄色免费 | 天天插伊人 | 国产毛片久久久 | 日韩av影视在线观看 | 中文字幕电影高清在线观看 | 成人午夜电影久久影院 | 久久久精品久久日韩一区综合 | 日韩一区二区三区高清在线观看 | 综合激情av | 黄色com | 九九视频精品免费 | 九九九视频精品 | 久久综合久久鬼 | 免费在线观看一级片 | 在线超碰av| 国产免费观看高清完整版 | 国产在线观看中文字幕 | 国产精品亚州 | 操综合| 最近中文字幕高清字幕免费mv | 激情综合五月 | 日韩电影中文,亚洲精品乱码 | 蜜臀av在线一区二区三区 | 99久久久久成人国产免费 | 国产中文字幕视频在线 | 麻豆视频免费观看 | 综合中文字幕 | 91麻豆精品91久久久久同性 | 999色视频| www..com黄色片 | 精品国产123 | 波多野结衣一区三区 | 日韩美女黄色片 | 亚洲免费av片 | 一区二区三区免费 | 一区二区三区电影 | 99热手机在线观看 | 91在线日韩 | av福利在线导航 | 欧美性精品 | 国产精品18久久久久久久久久久久 | 欧美高清成人 | 91精品国产麻豆国产自产影视 | 久久免费精品视频 | 亚洲最新av在线网址 | 国产精品毛片一区视频播不卡 | 视频一区在线播放 | 亚洲日本国产精品 | 久久久久久97三级 | 欧美精品在线一区 | 国产精品免费一区二区 | 亚洲精品视频中文字幕 | 亚洲精品观看 | 久久久综合九色合综国产精品 | 国产中文字幕在线 | 欧美性色综合 | 天天干天天操人体 | 欧美精品乱码久久久久 | 中文字幕频道 | 中文字幕有码在线观看 | 日韩艹 | 久热这里有精品 | 国内视频一区二区 | 亚洲高清久久久 | 成人国产精品免费观看 | 久久国产精品免费看 | 色一色在线| 美女视频是黄的免费观看 | 伊人久久国产精品 | 国内精品视频在线播放 | 日韩中文字幕91 | 黄色网中文字幕 | 午夜精品久久久久久中宇69 | 欧美精品天堂 | 免费在线观看中文字幕 | 在线观看网站av | 欧美地下肉体性派对 | 黄色免费大全 | 91麻豆精品国产91久久久更新时间 | 丝袜足交在线 | 国产香蕉久久 | av免费在线看网站 | 久草在线网址 | 日韩 在线观看 | 国内精品久久久久国产 | 人人搞人人搞 | 怡红院av久久久久久久 | 伊人天堂网 | 国产一级做a爱片久久毛片a | 成人国产精品久久久春色 | 精品国产伦一区二区三区观看体验 | 伊人色综合久久天天 | 97网站| 激情网五月婷婷 | 日韩中文字幕免费视频 | 97精品国产 | 久久久国产日韩 | 国产在线 一区二区三区 | 美女精品网站 | 最新日韩在线 | 综合网成人 | 日本乱视频| 97视频免费在线看 | 精品视频免费久久久看 | 久久福利综合 | www黄色大片 | 天堂久久电影网 | 波多野结衣日韩 | 色大片免费看 | 成人全视频免费观看在线看 | 亚洲无线视频 | 夜夜骑日日 | 亚洲日本三级 | 免费观看成人网 | 成人久久亚洲 | 深爱婷婷激情 | 久久综合久久88 | 国产亚洲精品美女久久 | 国产精品久久久久久久久毛片 | 国产小视频福利在线 | 97视频网址 | 中文不卡视频在线 | 亚洲综合在线视频 | 在线视频 91| 亚洲美女精品 | 激情小说网站亚洲综合网 | 国产成人免费av电影 | 国产成人免费精品 | 精品国产自在精品国产精野外直播 | 天天天操操操 | 国产一级片免费播放 | 成人黄色大片在线观看 | 久久久久亚洲最大xxxx | av看片在线观看 | 正在播放国产91 | 日韩最新理论电影 | 日韩欧美精品一区 | 亚洲日韩中文字幕在线播放 | 天天干.com| 亚洲精品456在线播放第一页 | 日本福利视频在线 | 国产精品久久久久久久久久新婚 | 精品一区中文字幕 | 在线成人小视频 | 麻豆视频在线免费看 | 亚洲91中文字幕无线码三区 | 久久久久久久精 | 久草手机视频 | 亚洲日韩中文字幕在线播放 | 99久久久国产精品免费99 | 在线观看免费国产小视频 | 久久草草热国产精品直播 | av丝袜天堂| 一级淫片在线观看 | 狠狠操操操 | 黄色在线观看www | 亚洲人精品午夜 | 天天操天天添天天吹 | 国产传媒一区在线 | 美国人与动物xxxx | 国产99久久精品 | 992tv在线观看网站 | 欧美激情一区不卡 | 欧美性黑人 | 在线观看中文字幕dvd播放 | 久热免费 | 亚洲经典视频在线观看 | 在线91色| 99热国内精品 | 国产色女人 | 欧美日韩视频免费 | 成人午夜性影院 | 伊甸园永久入口www 99热 精品在线 | 97精品伊人| 九月婷婷人人澡人人添人人爽 | 激情久久影院 | 精品不卡av| www一起操 | 99中文在线| 在线之家免费在线观看电影 | 麻豆系列在线观看 | 91大神精品视频 | 日韩a级免费视频 | 黄视频网站大全 | 日韩免费av在线 | 九九九热| 日本久草电影 | 国产专区视频在线观看 | 国产精品第54页 | 一区久久久 | 亚洲视频在线观看网站 | 国产精品久久久久一区二区 | 片网站 | 亚洲成av人片在线观看 | 欧美另类xxxx | 欧美另类xxx | 国产又粗又猛又爽 | 日韩在线观看影院 | 深爱婷婷久久综合 | 日韩精品在线视频免费观看 | 美女免费黄视频网站 | 国产福利91精品一区二区三区 | 91精品在线视频 | 天天爱天天射 | www.亚洲精品| 久久免费99精品久久久久久 | 97超视频在线观看 | 在线观看黄污 | 在线日韩精品视频 | 亚洲精品视频在线 | 日日干网址 | 一区二区电影在线观看 | www.com操| 欧美性网站 | 国产精品成人一区二区 | 国产a国产 | 成人免费网站在线观看 | 国产精品com | 日日操日日插 | 91福利影院在线观看 | 激情久久久久久久久久久久久久久久 | 91夫妻视频 | 日韩av成人 | 国产午夜剧场 | 国产老妇av | 国产日本亚洲 | 日韩欧美一区二区三区免费观看 | 国产欧美在线一区二区三区 | 色婷婷狠狠干 | 成年人精品 | 成年人在线免费看片 | 中文字幕在线日本 | 国产精品va在线观看入 | 人人爱人人添 | 欧美a级免费视频 | 国产精品免费成人 | 国产亚洲久久 | 99久久99久久精品免费 | 国产亚洲精品久久久久久无几年桃 | 亚洲精品久 | 亚洲v欧美v国产v在线观看 | 国产最新在线 | 久草精品视频 | 911国产在线观看 | 久久久久久国产精品999 | 国产高清视频在线免费观看 | 国产91在线免费视频 | 久久精品中文字幕 | 国产裸体无遮挡 | 国产精品久久在线观看 | 亚洲电影图片小说 | 亚洲乱码久久久 | 91精品久久久久久综合乱菊 | 日韩精品一区二区三区在线视频 | 久久精品牌麻豆国产大山 | 国产精品嫩草影院9 | 中文字幕在线观看日本 | 成年人免费看 | www夜夜操 | 久久高清精品 | 国产精品不卡在线播放 | 亚洲电影成人 | 日韩视频免费看 | av在线收看| 黄色毛片大全 | 欧美日韩精品在线免费观看 | 狠狠色丁香久久婷婷综合_中 | 亚洲黄色免费 | 久久黄色网址 | 亚洲天堂网站视频 | 四川妇女搡bbbb搡bbbb搡 | 精品产品国产在线不卡 | 欧美日韩亚洲精品在线 | 夜色资源站国产www在线视频 | 狠狠色网| 黄色特级片| 国产一区二区在线观看视频 | 视频一区二区免费 | 国产一区二区免费在线观看 | 免费三级在线 | 亚洲精品看片 | 99电影456麻豆| 午夜精品av在线 | 国产精品国产亚洲精品看不卡 | 国产精品久久久久久一二三四五 | 超碰在线色 | 国产一区视频在线播放 | 成人在线小视频 | 国内精品视频在线播放 | 成人v| 国产成人综 | 国产黄色理论片 | 日韩视频在线观看免费 | 91最新国产| 婷婷福利影院 | 综合网五月天 | 五月天堂网 | 亚洲精品在线免费观看视频 | 一区二区视频在线播放 | 亚洲精品国产精品国自产观看 | 久久综合久久综合这里只有精品 | 天天操人 | 青青草国产在线 | 韩国精品在线观看 | 久草91视频| 91漂亮少妇露脸在线播放 | 精品美女视频 | 五月天六月婷 | 91福利社在线观看 | 亚洲一级电影在线观看 | 欧美人人 | 在线观看岛国片 | 欧美男男激情videos | 久久午夜精品视频 | 激情五月五月婷婷 | 日韩在线视频网站 | 日本中文在线播放 | 天堂av网址 | 亚洲国产日韩精品 | 人人插人人 | 天天曰天天 | 97av视频| 久久综合成人 | 一区二区三区在线免费观看 | 国产精品99久久久久久久久久久久 | 韩日三级av | 91人网站 | 色噜噜狠狠狠狠色综合久不 | 99久久精品久久久久久清纯 | 婷婷综合伊人 | 四虎影视成人 | 黄色免费电影网站 | 午夜国产福利在线 | 国产精品久久久久永久免费看 | 中文字幕免费国产精品 | 又色又爽又黄高潮的免费视频 | av在线免费观看黄 | 久久 亚洲视频 | 国产黄色片网站 | 天天操天天射天天爱 | 日日摸日日爽 | www.天天干 | 精品一二三四在线 | 九九精品视频在线观看 | www免费网站在线观看 | 国产黄色大全 | av日韩国产| 精品九九九九 | 国产精品区一区 | 91大神精品视频在线观看 | 国产成人精品日本亚洲999 | 日韩在线看片 | 91精品国产99久久久久久久 | 91超国产 | 欧美成人影音 | 波多野结衣精品视频 | 成人午夜影视 | 成人国产精品久久久久久亚洲 | 国产成人一区二区精品非洲 | 久久99精品久久久久久秒播蜜臀 | 亚洲va男人天堂 | 国产精品 亚洲精品 | 美女久久网站 | 国产亚洲精品美女 | 九九在线精品视频 | 久久久免费看视频 | 99色国产 | 制服丝袜成人在线 | 国内精品视频在线 | 国产精品一区二区三区视频免费 | 欧美专区亚洲专区 | 国产精品成人久久久 | 天天综合天天做天天综合 | 亚洲一区二区视频 | 亚洲国产资源 | 一区二区三区久久 | 色永久免费视频 | 色香com. | 欧美精品中文在线免费观看 | 最新婷婷色 | 五月精品 | 日韩免费高清在线观看 | 精品国产免费观看 | 不卡av在线免费观看 | 爱射综合 | 免费毛片aaaaaa | 日韩精品最新在线观看 | 日本黄色黄网站 | 色中射 | 91伊人影院 | 高清有码中文字幕 | 西西444www大胆无视频 | 久久国产精品免费观看 | 日韩欧美在线播放 | 天天做天天看 | 国产色视频一区 | 久草在线视频首页 | av黄色免费网站 | 国产精品美女www爽爽爽视频 | 亚洲黄色在线免费观看 | 五月天激情综合网 | av在线中文 | 日韩欧美精品免费 | 麻花天美星空视频 | 亚洲不卡av一区二区三区 | 久久黄色网址 | 夜夜干夜夜 | 91精品国产高清自在线观看 | 99精品视频在线看 | 国产综合在线视频 | 国产精品美女久久久久久2018 | 国产专区视频在线 | 这里只有精品视频在线观看 | 久久精品9 | 国产三级精品在线 | 缴情综合网五月天 | 欧美精品久久久久久久久免 | 韩日精品视频 | 成 人 黄 色 视频 免费观看 | sm免费xx网站 | 六月丁香六月婷婷 | 国产成本人视频在线观看 | 久草在线费播放视频 | 欧美婷婷综合 | 中文理论片 | 一区二区三区四区久久 | 偷拍视频一区 | 中文字幕黄色网 | 看av免费网站 | www.天天操.com | 亚洲综合在线视频 | av在线日韩| 亚洲黄色影院 | 狠狠久久婷婷 | 一区二区精 | 99视频在线免费 | 天天色综合1 | 亚洲欧美视频一区二区三区 | 黄色三级网站在线观看 | 免费色视频网站 | 毛片1000部免费看 | 久草观看视频 | 天天操综合| 成人在线视频免费看 | 天天干天天操天天做 | 日本在线观看视频一区 | 精品久久99 | 天天狠狠操 | 91视频在线| 在线观看视频亚洲 | 狠狠插狠狠干 | 亚洲涩涩网站 | 成人a视频 | 国产视频在线观看一区二区 | av中文字幕在线免费观看 | 玖玖视频免费在线 | 国产丝袜一区二区三区 | 国产精品v欧美精品v日韩 | av久久久久久 | 欧美aa在线观看 | 免费观看一区 | 天天曰夜夜操 | 国产日韩精品一区二区三区 | 成人黄色小说在线观看 | 99久久精品无码一区二区毛片 | 一区二区精品在线观看 | 国产91在线播放 | 美女精品在线观看 | 久久99久久99精品免观看粉嫩 | 五月婷婷中文网 | 丁香六月婷 | 国产九九在线 | 玖玖视频精品 | 久久国产精品精品国产色婷婷 | 久久精品一二三区白丝高潮 | 亚洲人成在线电影 | av中文天堂在线 | 精品视频在线免费观看 | 精品在线观看免费 | 国内精品一区二区 | www.夜色321.com | 久久亚洲私人国产精品va | 国产亚洲午夜高清国产拍精品 | 精品在线免费视频 | 97视频在线看| 婷婷久久一区二区三区 | 91亚洲综合 | 日韩二区三区在线观看 | 美女免费视频一区 | 亚洲精品国产精品久久99 | 中文字幕国产亚洲 | 日韩精品欧美精品 | 久久丁香网 | 97看片 | 国产精品二区在线 | 色香蕉在线 | 亚洲国产资源 | 久久精品视频国产 | 欧美乱大交 | 999视频网站 | 啪啪资源 | 国产日韩精品一区二区三区 | 午夜视频免费在线观看 | 亚洲精品视频 | 午夜av日韩 | 成人黄色在线视频 | 在线观影网站 | 在线高清一区 | 国产成人久久精品亚洲 | 久久综合色播五月 | 久草在线视频资源 | 久久国产网 | 色婷婷www| 久综合网 | www一起操| 91网免费看| 国产精品theporn | 在线播放91| 久久另类小说 | 精品国产乱码久久久久久浪潮 | 在线精品一区二区 | 91网站免费观看 | 国内精自线一二区永久 | 狠狠狠干狠狠 | 久久精品一区二区国产 | 美州a亚洲一视本频v色道 | av在线等 | 91桃色免费观看 | 日本精品va在线观看 | 国产999视频在线观看 | 国产香蕉视频在线观看 | 免费观看一级特黄欧美大片 | www.夜夜操| 日韩欧美观看 | 349k.cc看片app| 成人观看 | 人人干人人搞 | 久久精品国产亚洲 | 久久免费毛片 | 婷婷色网视频在线播放 | av在线短片 | 久久久精品午夜 | 欧美性猛片 | 波多野结衣一区二区三区中文字幕 | 日本久久中文字幕 | www.亚洲激情.com | 日韩视频免费观看高清 | 27xxoo无遮挡动态视频 | 国产区在线视频 | 在线免费观看视频一区二区三区 | 亚洲成人蜜桃 | 久久都是精品 | 日本最大色倩网站www | 国产精品美女久久久久久 | 福利一区在线视频 | 一区二区三区电影大全 | 久久国产精品偷 | 91传媒在线播放 | 亚洲日日射 | 亚洲精品无 | 91在线国内视频 | 中文字幕亚洲不卡 | 日日干夜夜操视频 | 国产香蕉视频 | 91在线公开视频 | 最新国产精品久久精品 | 国产精品theporn | 亚洲国产欧美在线人成大黄瓜 | 蜜臀一区二区三区精品免费视频 | 99 精品 在线 | 国产手机视频在线播放 | 中文字幕在线观看完整版 | 久久久久97国产 | 日日操天天操夜夜操 | 国产馆在线播放 | 中文字幕成人在线 | 国产精品久久久久亚洲影视 | 国产不卡在线观看 | 国产精品com | 9久久精品| 一区二区视频在线观看免费 | 中文国产字幕在线观看 | 91在线影院 | 91完整版观看 | 国产精品美女久久久 | 欧美色图亚洲图片 | 日韩在线观看视频免费 | 99精品网站 | 国产亚洲精品美女 | 麻豆影视在线免费观看 | 久久国产麻豆 | 五月天久久婷 | 国产伦精品一区二区三区无广告 | 精品国产区在线 | 久久在线视频精品 | 亚洲 欧美 日韩 综合 | 国产视频黄 | 亚洲欧美国产精品 | 天天射天天射 | 成人黄色大片在线免费观看 | 韩国一区二区在线观看 | 国产视频资源在线观看 | 久久综合加勒比 | 亚洲传媒在线 | 91精品视频免费观看 | av一区在线播放 | 狠狠的干狠狠的操 | 亚洲精品视频在线观看免费 | 国产午夜精品久久久久久久久久 | 丁香五香天综合情 | 欧美一级片 | 狠狠ri| a天堂一码二码专区 | 欧美 激情 国产 91 在线 | 日韩一区二区免费播放 | 国产在线毛片 | 九九热视频在线播放 | 久久久久久久久久久影院 | 亚洲精品国久久99热 | 久久久久久久久爱 | 国产精品淫 | 中文字幕日本在线观看 | 最新婷婷色 | 久久精品美女 | 免费在线观看成年人视频 | 丁香 婷婷 激情 | 精品亚洲成a人在线观看 | 色妞久久福利网 | 91欧美视频网站 | 亚洲成aⅴ人片久久青草影院 | 中文字幕亚洲不卡 | 国产精彩在线视频 | 国产91亚洲 | 久久久999免费视频 日韩网站在线 | 婷婷免费在线视频 | 一区二区三区电影大全 | 夜夜骑天天操 | 亚洲视频电影在线 | 国产视频精品网 | 在线观看韩国av | 精品国产一区二区三区久久影院 | 国产精品9999 | 精品uu| 一区二区三区免费在线观看视频 | 国产精品va| 午夜.dj高清免费观看视频 | 国产h在线播放 | 五月色婷| 国产亚洲精品久久久久动 | 国产精品久久久久久久久久久不卡 | 天堂av在线网站 | 亚洲精品资源在线观看 | 日本99久久 | 国产视频亚洲 | 美女网站在线看 | 亚洲精品乱码久久久一二三 | 精品国产一区二区三区久久 | 成人av在线资源 | 毛片www | 亚洲理论电影网 | 91在线播放视频 | 91免费高清在线观看 | 久久综合久久88 | 99精品福利视频 | 亚洲电影网站 | 中文字幕av免费观看 | 午夜精品视频一区二区三区在线看 | 在线国产激情视频 | 色婷婷伊人| 亚洲人视频在线 | 日本久久中文字幕 | 日韩美女免费线视频 | 亚洲精品视频免费看 | 在线观看的av网站 | 日韩免费在线视频 | 国产色啪 | 亚洲精品视频免费 | 2023国产精品自产拍在线观看 | 伊人六月 | 午夜私人影院久久久久 | 国产乱码精品一区二区三区介绍 | 欧美精品乱码久久久久久 | 一级电影免费在线观看 | 国产精品美女网站 | www激情com | 97理论电影| 亚洲精品乱码久久久久 | 中文字幕在线一二 | 亚洲电影图片小说 | 99久久久免费视频 | 四虎在线免费观看视频 | a午夜在线 | 亚洲精品字幕在线观看 | 国产精品久久久久三级 | 色婷婷综合久久久久 | 在线精品视频在线观看高清 | 少妇按摩av | 久久综合久久综合久久综合 | 欧美另类xxx| 丁香激情综合 | 97人人射 | 成人黄色资源 | 韩国一区二区三区在线观看 | 午夜性盈盈 | 97超碰总站 | 日韩午夜在线 | 五月天色站 | 久久综合丁香 | 久久久国产精品一区二区三区 | 日韩中文久久 | 久久tv视频| 久久好看免费视频 | 91人人澡 | 国产黑丝一区二区 | 国产精品一级视频 | 伊人宗合网 | 国产色拍| 麻豆91视频 | 国产亚洲精品久久19p | 亚洲欧美日韩国产 | 色婷婷亚洲 | 欧美精品首页 | 国产精品99久久久久的智能播放 | 国产伦精品一区二区三区照片91 | 亚洲黄色小说网 | 亚洲成人午夜在线 | 日韩另类在线 | 日韩免费一区二区在线观看 | 久久成人国产精品免费软件 | 久久精品国产一区二区 | 亚洲国产免费 | 欧美夫妻性生活电影 | 国产精品美女免费视频 | 97自拍超碰 | 国产日产精品一区二区三区四区的观看方式 | 欧美视频在线观看免费网址 | 亚洲视频 一区 | www.com黄| 视频国产在线观看18 | 九九热有精品 | 日日爽天天爽 | 欧美日韩激情视频8区 |