繁体   English   中英

C#Windows窗体-文本框上的SendMessage EM_SETCUEBANNER不起作用

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

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

我究竟做错了什么? 我没有错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM