我正在使用Windows窗体在C#中创建应用程序。我想为我的文本框设置一个占位符,我从User32.dll找到了SendMessage的方法。这是我的代码(放在LoginForm.cs中,如果设置文件不存在,它是最早的形式之一):
private 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
都是文字框。但是,如果我运行我的应用程序,它不会应用占位符,它只关注最后一个文本框。
我做错了什么?我没有错。
答案 0 :(得分:-1)
我愚蠢,我忘了将Application.EnableVisualStyles();
添加到我的Program.cs。