【问题标题】:How to make text appear in the text box but when it is clicked the text goes away, letting you type [duplicate]如何使文本出现在文本框中,但单击时文本消失,让您输入[重复]
【发布时间】:2019-10-28 16:01:22
【问题描述】:

我想让文本出现在文本框中,但在单击文本框时消失。

我希望它是这样的:https://gyazo.com/17087686454b0b884104dcf08c551de0

这基本上就是我想要的。

编辑:OP 表明这是一个winforms 应用程序

【问题讨论】:

  • @JohnLord 不正确。这也是一个糟糕的假设。 OP 可能只想在不同的技术中复制行为。在这种情况下,他做了 - WinForms
  • @Terry 你确定这是winforms而不是web吗?鉴于您选择的答案,我感到很惊讶。
  • 他最初没有指定 winforms,这是 winforms 应用程序的异常行为。

标签: c# winforms


【解决方案1】:

没有直接的方法可以将占位符添加到文本框。但是你可以轻松地做这样的事情。

Textbox newTextBox = new Textbox();
newTextBox.Text = "Search google or type URL";

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

public void RemoveText(object sender, EventArgs e)
{
    if (newTextBox.Text == "Search google or type URL") 
    {
     newTextBox.Text = "";
    }
}

public void AddText(object sender, EventArgs e)
{
    if (string.IsNullOrWhiteSpace(newTextBox.Text))
        newTextBox.Text = "Search google or type URL";
}

【讨论】:

    【解决方案2】:

    使用占位符属性应该可以做到

    【讨论】:

    • 什么是占位符属性?
    • 您使用的是 HTML /web 还是 Windows 应用程序?
    • Placeholder 属性位于 HTML 中的测试输入元素上。如果您希望它在用户打开页面时包含文本,您可以将所需的文本放入其中。只需谷歌它。同样是新来的,这让我很生气,如果没有错,有人会否决我的答案!
    • “占位符属性在 HTML 中的测试输入元素上” - 在 OP 反馈之前,是什么让您认为这是一个 HTML 问题?通常你不应该回答没有明确定义的问题。 How to Ask.
    • OP 现在表明它是一个 WinForms 应用程序,因此您的答案不适用
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多