Vb.net 如何将文本框的文本设置为默认值
我可能无法正确解释这个问题,但假设我的文本框在MM/DD/YYYY中有一个文本,该文本是根据其属性编辑的。我想知道,一旦文本框未被选中,它将如何再次返回到该文本。我试着对它进行编码,一旦文本框被点击,文本将自动清除,但我想知道它将如何再次返回到该文本。对不起,我的英语很糟糕,但希望你能理解Vb.net 如何将文本框的文本设置为默认值,vb.net,winforms,textbox,Vb.net,Winforms,Textbox,我可能无法正确解释这个问题,但假设我的文本框在MM/DD/YYYY中有一个文本,该文本是根据其属性编辑的。我想知道,一旦文本框未被选中,它将如何再次返回到该文本。我试着对它进行编码,一旦文本框被点击,文本将自动清除,但我想知道它将如何再次返回到该文本。对不起,我的英语很糟糕,但希望你能理解 Private Sub birthdate_Click(sender As Object, e As EventArgs) Handles birthdate.Click birthdate.Cle
Private Sub birthdate_Click(sender As Object, e As EventArgs) Handles birthdate.Click
birthdate.Clear()
End Sub
这是我单击文本框时的代码,它将清除文本本身。这将使您了解我所说的内容这是一个扩展模块,它向文本框和组合框控件添加了一个方法,用于激活提示横幅1的内部功能。对于文本框,有两种可用的风格:提示横幅可见:a直到控件获得焦点,b在输入第一个字符后。 ComboBox控件在收到焦点或打开下拉列表后立即删除提示横幅 Win32函数用于修改编辑控件(文本框控件和组合框的编辑子控件)的行为,分别发送和消息 1设置显示的文本提示或提示 用于提示用户输入信息的编辑控件 由于这些是扩展方法,因此每个方法都扩展了控件功能,可以直接调用:
' The Cue Banner is visible until the control gets focus
TextBox1.SetCueBanner("MM/DD/YYYY", False)
' The Cue Banner is visible until a character is entered
TextBox1.SetCueBanner("User Name...", True)
ComboBox1.SetCueBanner("Select an item...")
将模块添加到项目中,并用以下内容替换模板生成的代码:
VB.Net版本:
关于添加该功能的自定义文本框控件,有各种示例。是一个在C语言中,可以很容易地转换为VB。我建议安装以进行转换。这是否回答了您的问题。有关在Windows平台上启用提示横幅功能所需的所有详细信息,请参阅接受答案。这是否回答了您的问题?这回答了你的问题吗?
Public Module ModExtentions
Private Const EM_SETCUEBANNER As Integer = &H1501
Private Const CB_SETCUEBANNER As Integer = &H1703
<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)>
Private Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
End Function
<Extension()>
Public Sub SetCueBanner(tbox As TextBox, ByVal text As String, ByVal showOnFocus As Boolean)
SendMessage(tbox.Handle, EM_SETCUEBANNER, If(showOnFocus, 1, 0), text)
End Sub
<Extension()>
Public Sub SetCueBanner(cbo As ComboBox, ByVal text As String)
SendMessage(cbo.Handle, CB_SETCUEBANNER, 0, text)
End Sub
End Module