我在某些地方看到過(對不起,現在無法提供鏈接),表單中的驗證錯誤顯示在頂部的標籤中。當用戶填寫表單時,該錯誤文本會相應更改。在Winforms中使用專用標籤進行自動驗證
我可以看到一個明顯的if ... else和處理「驗證」等事件來實現這一點(儘管它對於複雜的表單來說可能非常繁瑣)。有沒有更直接,更乾淨的方式來做到這一點?
謝謝!
我在某些地方看到過(對不起,現在無法提供鏈接),表單中的驗證錯誤顯示在頂部的標籤中。當用戶填寫表單時,該錯誤文本會相應更改。在Winforms中使用專用標籤進行自動驗證
我可以看到一個明顯的if ... else和處理「驗證」等事件來實現這一點(儘管它對於複雜的表單來說可能非常繁瑣)。有沒有更直接,更乾淨的方式來做到這一點?
謝謝!
您應該看看如this blog post中所述實施IDataErrorInfo
。然後,您可以將您的Label
綁定到IDataErrorInfo.Error
屬性。加一點INotifyPropertyChanged
和你的Label
會自動更新。
如果你想避免在表單上的所有文本框中添加「驗證」事件(並且這使得複雜的表單更復雜),也許你應該嘗試通過表單的OnKeyDown
事件捕獲所有輸入,並進行一些解析(保持跟蹤寫什麼,什麼對象有重點)。這樣你就可以在一個地方處理所有事情。