好傢伙,我試圖創建一個使用過的文本框的標籤一鬼文本。我正在使用VB.Net2005。我做到了這一點與此代碼:
Public Class frmDataEntry
Private Sub PhantomTextLastName()
If txtLastName.Text = "" Then
lblLastName.Visible = True
Else
lblLastName.Visible = False
End If
End Sub
Private Sub PhantomTextFirstName()
If txtFirstName.Text = "" Then
lblFirstName.Visible = True
Else
lblFirstName.Visible = False
End If
End Sub
Private Sub PhantomTextMiddleInitial()
If txtMiddleInitial.Text = "" Then
lblMiddleInitial.Visible = True
Else
lblMiddleInitial.Visible = False
End If
End Sub
Private Sub txtLastName_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtLastName.Click
lblLastName.Text = "Last Name"
End Sub
Private Sub txtLastName_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtLastName.KeyDown
PhantomTextLastName()
End Sub
Private Sub txtLastName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtLastName.TextChanged
PhantomTextLastName()
End Sub
Private Sub lblLastName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblLastName.Click
txtLastName.Focus()
End Sub
Private Sub txtFirstName_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtFirstName.Click
lblFirstName.Text = "First Name"
End Sub
Private Sub txtFirstName_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtFirstName.KeyDown
PhantomTextFirstName()
End Sub
Private Sub txtFirstName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFirstName.TextChanged
PhantomTextFirstName()
End Sub
Private Sub lblFirstName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblFirstName.Click
txtFirstName.Focus()
End Sub
Private Sub lblMiddleInitial_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblMiddleInitial.Click
txtMiddleInitial.Focus()
End Sub
Private Sub txtMiddleInitial_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtMiddleInitial.Click
lblMiddleInitial.Text = "Middle I."
End Sub
Private Sub txtMiddleInitial_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtMiddleInitial.KeyDown
PhantomTextMiddleInitial()
End Sub
Private Sub txtMiddleInitial_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMiddleInitial.TextChanged
PhantomTextMiddleInitial()
End Sub
End Class
有什麼辦法來減少這些代碼,這樣,當我嘗試添加另一個文本框我永遠不會有重新輸入一串代碼。我有使用模塊和類的基本知識,但我真的不知道如何將此應用於此項目。我是一個新手,如果你有任何教程可以幫助我解決這個問題,請給我一個鏈接。在此先感謝&上帝保佑。
減少冗餘的關鍵是封裝功能的重用。也就是說,每寫一個自定義控件並使用它。 –