C# Windows 表单 - 文本框上的 SendMessage EM_SETCUEBANNER 不工作

C# Windows Forms - SendMessage EM_SETCUEBANNER on textbox not working

我正在使用 windows 表单在 C# 中制作应用程序。我想为我的文本框设置一个占位符,我从 User32.dll 中找到了 SendMessage 的方法。这是我的代码(放在 LoginForm.cs 中,如果设置文件不存在,这是第一种形式):

私有常量整数 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);

是放在class里面的。作为我的构造函数,我得到了:

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");
}

我的hostnameportusernamepassworddatabase都是文本框。但是如果我 运行 我的应用程序,它不应用占位符,它只关注最后一个文本框。

我做错了什么?我没有收到任何错误。

我傻了,我的Program.cs忘记加Application.EnableVisualStyles();了。