Hola chicos, me trataron de crear un texto fantasma el uso de etiquetas más de los cuadros de texto. Estoy usando VB.Net2005. Lo logré con este código:
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
¿Hay alguna manera de reducir este código, de modo que cuando intento añadir otros cuadros de texto que nunca tendré que volver a escribir un montón de códigos. Tengo conocimientos básicos sobre el uso de Módulo y clase, pero realmente no tengo idea de cómo aplicar esto con este proyecto. Soy un novato, y si tienes algún tutorial que pueda ayudarme a resolver este problema, amablemente dame un enlace. Gracias de antemano & Dios bendiga.
La clave para reducir la redundancia es encapsular la funcionalidad de reutilizar. Es decir, escriba un control personalizado y úselo cada vez. –