1
Frm1
調用公共函數中包含的textbox
驗證碼:如何從另一種形式
Public Function AlphabeticalOnly(ByVal Str As String) As Boolean
Dim pattern As String = "^[a-zA-Z\s]+$"
Dim reg As New Regex(pattern)
If reg.IsMatch(Str) = False Then
MsgBox(Str & " is invalid! Please enter alphabetical characters only!", MsgBoxStyle.Critical, "Error")
End If
Return reg.IsMatch(Str)
End Function
因爲在你住驗證的量,我不想再次重複所有的代碼其他形式。
Private Sub btnDone_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDone.Click
If AlphabeticalOnly(txtName.Text) = False Then
Exit Sub
End If
...
End Sub
我想上面的代碼中的另一種形式,但錯誤列表顯示AlphabeticalOnly
未聲明。
有什麼我需要添加到我的代碼?
我奉勸不要過度使用靜態函數,因爲他們使單元測試更加困難,成爲東西不能僞裝出來。否則你的答案是現貨,我不知道誰投了票。 – Tim 2015-03-09 04:39:24
大衛你好!你的方法就像一個魅力!但是,我發現在每個文本框中使用KeyPress事件對我來說是更好的方法!不管怎麼說,還是要謝謝你! – Caesium95 2015-03-09 18:18:07
@ Caesium95:很高興能幫到你! keypress事件同樣好,這裏的要點不是使用哪個事件,而是在哪裏組織通用代碼。這種輔助方法絕對屬於UI級輔助類而不是表單。它是否應該被「共享」,或者該共同代碼的結構應該是什麼,這是值得商榷的。理想情況下,隨着更多代碼的添加,這將轉向更加面向對象的設計。但是,對於這種幫助者方法,目標是實現簡單地將代碼從表單中移出。 – David 2015-03-09 18:20:52