Foxtable(狐表)用户栏目专家坐堂 → 控件水印相关


  共有3081人关注过本帖树形打印复制链接

主题:控件水印相关

帅哥哟,离线,有人找我吗?
cd_tdh
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3115 积分:20778 威望:0 精华:0 注册:2016/3/28 16:57:00
控件水印相关  发帖心情 Post By:2021/4/30 10:19:00 [只看该作者]

老师,之前水印,一直用的班长的方法,刚刚群里面的方法是:

e.Form.Controls("项目名称").BaseControl.DisplayFormat.NullText="请输入项目名称"

但是需要每个窗口都去设置,有点不方便

有没办法通过全局变量来定义,比如所有窗口中,控件名称为:项目名称 ,水印提示都为:请输入项目名称


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108113 积分:549982 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 10:32:00 [只看该作者]

我反馈一下

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108113 积分:549982 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 11:01:00 [只看该作者]

这种用法不是属于水印,是控件空值的时候设置一个显示文本,这个会影响控件text属性,也就是使用e.Form.Controls("项目名称").text会取到设置的内容"请输入项目名称",而不是空的,这个使用的时候需要注意

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3115 积分:20778 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/4/30 11:08: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.textbox,str As String)
SendMessage(wTextBox.BaseControl.Handle, EM_SETCUEBANNER, IntPtr.Zero, System.Text.Encoding.Unicode.GetBytes(str))
End Sub

 

窗口加载后代码如下:

SetWatermark(e.Form.Controls("项目名称"),"请输入项目名称")


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108113 积分:549982 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 11:30:00 [只看该作者]

没有的。窗口不打开,控件就不存在,所以只能在窗口加载里设置

 回到顶部