整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          使用ErrorProvider組件驗證文本框輸入-C#學習進階

          實例實現ErrorProvider組件對Textbox控件的輸入驗證,在一些程序錄入中應用ErrorProvider組件能提高錄入數據的正確性。運行本程序,登錄名輸入“mr”,密碼為“Mrsoft”,單擊“確定”按鈕,如果密碼輸入錯誤,ErrorProvider組件在密碼文本框旁會閃爍圖標,給出提示,效果如圖所示。

          技術要點

          實現本實例功能主要用到了ErrorProvider組件的Blinkbate屬性、Blinkstyle屬性、SetError方法和TextBox文本框的Validating事件。下面分別進行介紹。

          (1)Blinkstyle屬性

          此屬性獲取或設置一個值,該值指示錯誤圖標的閃爍時間。其語法格式如下:

          public ErrorBlinkStyle BlinkStyle { get; set; }

          屬性值:ErrorBlinkStyle值之一。默認為BlinkIfDifferentError。ErrorBlinkStyle屬性值及說明如表所示。

          ErrorBlinkStyle屬性值及說明

          屬 性 值

          說 明

          AlwaysBlink

          當錯誤圖標第一次顯示時,或者當為控件設置了錯誤描述字符串并且錯誤圖標已經顯示時,總是閃爍

          BlinkIfDifferentError

          當圖標已經顯示并且為控件設置了新的錯誤字符串時閃爍

          NeverBlink

          錯誤圖標從不閃爍

          (2)Blinkbate屬性

          此屬性獲取或設置錯誤圖標的閃爍速率。其語法格式如下:

          public int BlinkRate { get; set; }

          屬性值:錯誤圖標的閃爍速率(以毫秒為單位)。默認為250毫秒。

          注意:錯誤圖標按指定速率閃爍。將BlinkStyle設置為NeverBlink時,表示閃爍速率為0,即不閃爍。

          (3)SetError方法

          此方法將Error屬性設置為指定的TextWriter對象。其語法格式如下:

          public static void SetError (TextWriter newError)

          參數說明如下。

          newError:一個TextWriter流,是新的標準錯誤輸出。

          (4)Validating事件

          此事件在控件正在驗證時發生。其語法格式如下:

          public event CancelEventHandler Validating

          實現過程

          (1)新建一個Windows應用程序,將其命名為ExecuteAsynchronismFunction,默認窗體為Form1。

          (2)在Form1窗體中,主要添加兩個ErrorProvider組件,將其BlinkRate屬性設置為100,BlinkStyle屬性值設置為AlwaysBlink,該控件用于驗證輸入是否正確;添加兩個TextBox控件,用于輸入文本;添加兩個Button控件,用于引發ErrorProvider組件驗證。

          (3)主要程序代碼。

          定義一個帶圓角的Textbox,沒有用win32 Api,相對比用Api要好一點。注意窗口AutoScaleMode設置為None.

          例說明

          當平臺進行注冊時,都需要填寫用戶名和登錄密碼。在輸入登錄密碼時,需要重復輸入一次。在重復輸入文本框中,應該禁用粘貼功能,防止用戶密碼輸入錯誤的情況。本實例可以實現這個功能,實例運行結果如圖:

          技術要點

          本實例主要用到自定義類CustomTextBoxGroup,在該類的構造方法中,對控件的位置和大小進行設定。在處理屏蔽粘貼的消息時用到方法WndProc。

          實現過程

          (1)創建一個項目,將其命名為ShieldPasteFunction,修改默認窗體為ShieldPasteFunction。

          (2)主要程序代碼。

          本程序在加載窗體時,聲明一個自定義類CustomTextBoxGroup的對象,并為其指定父容器,然后在當前窗體中添加該控件。代碼如下:

          TextBox NoStiky = new CustomTextBoxGroup();                    //聲明一個自定義類CustomTextBoxGroup的對象
          private void ShieldPasteFunction_Load(object sender,EventArgs e)
          {
              this.NoStiky.Parent = this;                                 //設定自定義控件的父容器為當前窗口
              this.Controls.Add(this.NoStiky);                        //在當前窗體中添加自定義控件
          }

          在自定義類CustomTextBoxGroup的構造函數中,定義控件的位置和大小。代碼如下:

          public CustomTextBoxGroup()
          
          {
          
              this.Top = 63;                           //設定自定義控件上邊緣與其容器的工作區上邊緣之間的距離
          
              this.Left = 105;                         //設定自定義控件左邊緣與其容器的工作區左邊緣之間的距離
          
              this.Width = 178;                        //設定自定義控件的寬度
          
              this.Height = 50;                          //設定自定義控件的高度
          
          }

          重載Windows處理消息的函數WndProc,截獲有關粘貼的信息進行屏蔽。代碼如下:


          主站蜘蛛池模板: 日韩成人无码一区二区三区| 免费看无码自慰一区二区| 射精专区一区二区朝鲜| 亚洲高清一区二区三区电影| 国产激情з∠视频一区二区| 国产激情一区二区三区 | 无码视频免费一区二三区| 久久精品国产一区| 亚洲一区日韩高清中文字幕亚洲| 日本免费电影一区| 亚洲AV日韩综合一区| 亚洲国产欧美国产综合一区| 亚洲福利一区二区三区| 中文字幕亚洲综合精品一区| 一区二区乱子伦在线播放| 亚洲国产成人久久一区WWW| 一区二区三区视频在线播放| 国产AV天堂无码一区二区三区| 精品国产日韩一区三区| 精品一区二区三区视频| 视频在线观看一区二区三区| 国产一区在线电影| 国产高清在线精品一区二区| 国产成人高清精品一区二区三区| 国产伦精品一区二区三区视频金莲| 精品中文字幕一区在线| 一区二区三区伦理高清| 国产激情一区二区三区| 精品一区二区在线观看| 久久综合九九亚洲一区| 精品国产aⅴ无码一区二区| 少妇一夜三次一区二区| 精品一区二区三区视频| 在线精品动漫一区二区无广告 | 无码av人妻一区二区三区四区| 麻豆一区二区在我观看 | 国产一区二区三区露脸| 色视频综合无码一区二区三区| 中文字幕一区二区三区日韩精品 | 中文字幕不卡一区| 在线视频一区二区三区|