[英]C# Windows Forms - SendMessage EM_SETCUEBANNER on textbox not working
我正在使用Windows窗体的C#开发应用程序。 我想为我的文本框添加一个占位符,并从User32.dll找到了SendMessage的方法。 这是我的代码(放置在LoginForm.cs中,如果设置文件不存在,这是第一种形式):
私有const int EM_SETCUEBANNER = 0x1501;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string lParam);
被放置在类里面。 作为我的构造函数,我得到了:
public LoginForm()
{
InitializeComponent();
SendMessage(hostname.Handle, EM_SETCUEBANNER, 0, "Hostname");
SendMessage(port.Handle, EM_SETCUEBANNER, 0, "Port");
SendMessage(username.Handle, EM_SETCUEBANNER, 0, "Username");
SendMessage(password.Handle, EM_SETCUEBANNER, 0, "Password");
SendMessage(database.Handle, EM_SETCUEBANNER, 0, "Database");
}
我的hostname
, port
, username
, password
, database
都是文本框。 但是,如果我运行我的应用程序,则它不应用占位符,而只专注于最后一个文本框。
我究竟做错了什么? 我没有错误。
我很傻,我忘了添加Application.EnableVisualStyles();
到我的Program.cs。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.