[英]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.