将占位符添加到密码c#winforms的文本框控件中

时间:2018-05-05 21:06:36

标签: c# winforms textbox placeholder

如何将占位符添加到c#winform控件?

当控制失去焦点且控制文本为null时,我希望占位符出现。

当文本框为UsePasswordChar true时,它仍会显示占位符(以明文形式显示),当用户开始编写时,它会显示密码字符。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我对WinForms不是很熟悉,但我怀疑你可以使用GotFocus事件根据控件是否有值来改变密码类型。

这应该指向正确的方向:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.gotfocus(v=vs.110).aspx

答案 1 :(得分:0)

您可以为lostFocus和AddFocus添加事件

Textbox myTxtbx = new Textbox();
myTxtbx.Text = "Enter text here...";

myTxtbx.GotFocus += GotFocus.EventHandle(RemoveText);
myTxtbx.LostFocus += LostFocus.EventHandle(AddText);

public void RemoveText(object sender, EventArgs e)
{
     myTxtbx.Text = "";
}

public void AddText(object sender, EventArgs e)
{
     if(String.IsNullOrWhiteSpace(myTxtbx.Text))
        myTxtbx.Text = "Enter text here...";
}

或者您可以使用提示创建一个新类,请在此处查看此答案: Answer

答案 2 :(得分:0)

如果您正在使用 WinForms for .NET Core ,或者计划将来进行迁移,则可以使用TextBox的新PlaceholderText属性。它大大简化了事情。

Placeholder

Password entry