2011-02-08 19 views
0

hi 我有一個winform有幾個控件,如datagridviewes,textboxes,listboxes等等。 senario是當用戶在textbox1中輸入代碼時,系統檢查其驗證,然後自動從數據庫中檢索其相關數據,最後用戶可以將所有數據保存到數據庫中。.net:如何防止用戶在輸入的數據無效時繼續使用winform工作?

但是,如果數據用戶輸入無效,我認爲最好向用戶顯示一條消息,並防止他繼續輸入其他數據。

這是可能的通過使用事件?或者你建議更好的解決方案?其實這樣的senarios有什麼最佳做法嗎?

在此先感謝

+0

我認爲「系統檢查其有效性」意味着你已經處理[`Validating`事件](http://msdn.microsoft.com/en-us/library/system。 windows.forms.control.validating.aspx)爲每個控件?如果是這種情況,通過在該事件處理程序方法中將「e.Cancel」設置爲「True」,然後在屏幕上顯示任何想要的消息,這是一個簡單的問題。 – 2011-02-08 10:02:07

回答

0

我希望我能正確理解您的問題。

你必須在形成若干控件和你在搜索框中輸入一個特定的代碼,如果該代碼是正確的它將從數據庫中獲取一些數據,如果該代碼是不正確警告無效代碼的用戶,並設置焦點回到文本框。

您可以對此做相同的操作。

private void CodeTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    if(CodeIsValid()) 
    { 
    // do your database work here 
    } 
    else 
    { 
    MessageBox.Show("Invalid code, please enter correct code"); 
    e.Cancel = true; 
    } 
} 

private bool CodeIsValid() 
{ 
    // Validate code here 
} 
相關問題