簡體   English   中英

C#驗證winforms上文本框的輸入

[英]C# Validating input for textbox on winforms

我想先檢查用戶在文本框中寫入的內容,然后再將其保存到數據庫中。 做這個的最好方式是什么? 我想我總是可以寫一些 ifs 或一些 try-catch 塊,但我想知道是否有更好的方法。 我讀過一些關於驗證事件的內容,但我不確定如何使用它們。

描述

有多種方法可以驗證您的 TextBox。 您可以在每次擊鍵時、稍后或在Validating事件上執行此操作。

如果您的 TextBox 失去焦點,則會觸發Validating事件。 例如,當用戶單擊其他控件時。 如果您設置e.Cancel = true則 TextBox 不會失去焦點。

MSDN - Control.Validating 事件當您通過使用鍵盤(TAB、SHIFT+TAB 等)、通過調用 Select 或 SelectNextControl 方法或通過將 ContainerControl.ActiveControl 屬性設置為當前窗體來更改焦點時,焦點事件按以下順序發生

進入

獲得焦點

離開

證實

已驗證

失去焦點

當您使用鼠標或通過調用 Focus 方法更改焦點時,焦點事件按以下順序發生:

進入

獲得焦點

失去焦點

離開

證實

已驗證

示例驗證事件

private void textBox1_Validating(object sender, CancelEventArgs e)
{
    if (textBox1.Text != "something")
        e.Cancel = true;
}

更新

您可以使用ErrorProvider來可視化您的 TextBox 無效。 查看在 Windows 窗體和 C# 中使用錯誤提供程序控件

更多信息

使用 WinForms,您可以將 ErrorProvider 與Validating事件結合使用來處理用戶輸入的驗證。 Validating事件提供了執行驗證的鈎子,而 ErrorProvider 提供了一種很好的一致方法來為用戶提供有關任何錯誤情況的反饋。

http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM