我試圖拿起C#,做一些基本驗證的東西。檢查驗證過程中是否有任何錯誤
所以,我使用了errorProvider控件,但是當我在窗體中按下OK按鈕時,窗體剛剛提交。是的,錯誤圖標出現在他們應該(驗證工作)的地方,但我如何檢查是否有實際的錯誤,以防止表單被提交?請嘗試儘可能保持友好,我幾乎不瞭解任何C#。
我試圖拿起C#,做一些基本驗證的東西。檢查驗證過程中是否有任何錯誤
所以,我使用了errorProvider控件,但是當我在窗體中按下OK按鈕時,窗體剛剛提交。是的,錯誤圖標出現在他們應該(驗證工作)的地方,但我如何檢查是否有實際的錯誤,以防止表單被提交?請嘗試儘可能保持友好,我幾乎不瞭解任何C#。
,它應該是這樣的:
private void textBox1_Validating(object sender, CancelEventArgs e)
{
TextBox tb = sender as TextBox;
if (tb.Text.Length > 0)
{
e.Cancel = true;
errorProvider1.SetError(tb, "Please leave this textbox blank!");
}
else
{
errorProvider1.SetError(tb, "");
}
}
這會防止你點擊關閉控制
另外,實行OK按鈕單擊處理程序是這樣的:
private void OkBtn_Click(object sender, EventArgs e)
{
if (!Validate())
{
DialogResult = System.Windows.Forms.DialogResult.None;
}
}
的 「的DialogResult =無」 布西ness是什麼停止表單關閉。
謝謝,我明白了。 – 2013-03-06 21:11:56
如果解決了這個問題,我可以接受嗎? – 2013-03-06 21:13:25
有一個upvote以防萬一。乾淨,簡潔的答案。 – 2013-03-06 21:16:42
驗證有很多種方法。請閱讀這篇文章啓動,如果你使用的是錯誤提供商和處理onvalidating許多問題將消失http://msdn.microsoft.com/en-us/library/debza5t0%28v=vs.100%29.aspx
Asp.net? Silverlight的? WPF?的WinForms? (我的downvote的主要原因,次要的是缺少代碼) – gdoron 2013-03-06 21:02:27
你可以顯示你的onvalidation處理程序?我懷疑你沒有設置e.cancel = true – 2013-03-06 21:02:29
@gdoron winforms – 2013-03-06 21:10:57