以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]文本框水印如何应用到下拉框?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154524)

--  作者:zto001
--  发布时间:2020/9/17 11:10:00
--  [求助]文本框水印如何应用到下拉框?
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=153214&page=0&move=pre

[求助]文本框水印如何应用到下拉框?

--  作者:有点蓝
--  发布时间:2020/9/17 11:29:00
--  
11
[此贴子已经被作者于2020/9/18 8:45:26编辑过]

--  作者:z769036165
--  发布时间:2020/9/18 8:34:00
--  
全局代码
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As IntPtr, ByVal lParam As Byte()) As Integer
Public Const EM_SETCUEBANNER As Integer = &H1501
Public Sub SetWatermark(wTextBox As winform.ComboBox,str As String)
SendMessage(wTextBox.BaseControl.Handle, EM_SETCUEBANNER, IntPtr.Zero, System.Text.Encoding.Unicode.GetBytes(str))
End Sub


窗口代码
SetWatermark(e.Form.Controls("ComboBox1"),"请输入账号")
SetWatermark(e.Form.Controls("ComboBox2"),"请输入密码")





--  作者:有点蓝
--  发布时间:2020/9/18 8:45:00
--  
重新测试了一下,是可以的,之前测试错了,以为不行

这样改改,可以同时适合其它输入控件
全局代码
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As IntPtr, ByVal lParam As Byte()) As Integer
Public Const EM_SETCUEBANNER As Integer = &H1501
Public Sub SetWatermark(wTextBox As object,str As String)
SendMessage(wTextBox.Handle, EM_SETCUEBANNER, IntPtr.Zero, System.Text.Encoding.Unicode.GetBytes(str))
End Sub


窗口代码
SetWatermark(e.Form.Controls("ComboBox1").BaseControl,"请输入账号")
SetWatermark(e.Form.Controls("textBox1").BaseControl,"请输入密码")

SetWatermark(e.Form.Controls("CheckedComboBox1").basecontrol,"请输入密码")
SetWatermark(e.Form.Controls("DropBox1").basecontrol,"请输入密码")
SetWatermark(e.Form.Controls("NumericComboBox1").basecontrol,"请输入密码")