實例實現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,截獲有關粘貼的信息進行屏蔽。代碼如下:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。