整合營銷服務商

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

          免費咨詢熱線:

          使用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,截獲有關粘貼的信息進行屏蔽。代碼如下:


          主站蜘蛛池模板: 无码福利一区二区三区| 日本欧洲视频一区| 亚洲国产精品一区二区三区在线观看| 亚洲福利精品一区二区三区| 精品无人区一区二区三区 | 午夜无码视频一区二区三区| 久久国产一区二区三区| 欧洲精品一区二区三区在线观看| 2020天堂中文字幕一区在线观| 在线日韩麻豆一区| 亚洲国产美女福利直播秀一区二区| 国产在线一区二区在线视频| 无码人妻久久一区二区三区蜜桃 | 日韩精品一区二区午夜成人版| 精产国品一区二区三产区| 国产精品亚洲午夜一区二区三区 | 日亚毛片免费乱码不卡一区| 国产主播一区二区| 美女视频一区二区| 91无码人妻精品一区二区三区L| 波多野结衣一区在线| 亚洲另类无码一区二区三区| 久久精品一区二区三区四区| 国产成人高清精品一区二区三区| 毛片一区二区三区| 性色A码一区二区三区天美传媒| 国产一区二区三区视频在线观看 | 无码中文字幕人妻在线一区二区三区| 国产成人久久精品麻豆一区| 国产精品无码一区二区在线| 国产精品合集一区二区三区| 色窝窝无码一区二区三区成人网站| 国模大尺度视频一区二区| 无码日韩精品一区二区人妻| 中文字幕一区二区三区久久网站| 久久精品无码一区二区日韩AV| 手机看片福利一区二区三区 | 日本大香伊一区二区三区| 本免费AV无码专区一区| 性无码一区二区三区在线观看| 日韩一区二区三区射精|