我希望我的TextBox文本已经有产品名称,当我点击它时会自动消失,我可以输入我想要的文本框。
请告诉我如何在不丢失我手动输入的数据的情况下执行该操作,只要我自己在文本框中输入任何内容,我就可以获得默认文本。
答案 0 :(得分:1)
这种行为被称为水印。你可以:
答案 1 :(得分:1)
为什么要使用一些额外的软件而不是用你自己的思维来编码?这是实现此任务的简单代码
首先使用它:
public bool txSearch = false;
然后在您的文字点击事件代码:
private void txtSearch_Click(object sender, EventArgs e)
{
txSearch = true;
if (txtSearch.Text == "Product Name")
{
if (txSearch == true)
{
txtSearch.Text = "";
}
}
}
当您单击文本时,这将清除您的字段文本框,现在在文本框中没有任何内容时写回产品名称,并且您要离开它,在文本框离开事件时执行此代码:
private void txtSearch_Leave(object sender, EventArgs e)
{
if (txtSearch.Text == "") // here you can also use txtSearch.Text != "Poduct Name", but it could affect your search code possibly
{
txtSearch.Text = "Product Name";
}
}
答案 2 :(得分:0)
您应该考虑使用第三方控件,有足够的WatermarkTextbox控件可用。我更喜欢xceed中的那个:http://wpftoolkit.codeplex.com/wikipage?title=WatermarkTextBox
前段时间我自己写了这个行为,使用AdornerDecorator
来覆盖TextBox
,将IsFocused
属性绑定到我的ViewModel并制作了一个标记ShouldShowWatermark
其中我绑定了AdornerDecorator
的可见性。
答案 3 :(得分:0)
您实际上需要为文本框添加水印。
请查看Watermark / hint text TextBox in WPF的答案,以便在文本框中实现附加属性。
答案 4 :(得分:0)
这将起作用:
转到文本框的“属性”。您会在第一行标签中看到一个黄色的闪电。在那里您会找到所有可能触发的事件。搜索“输入”或“单击”条目,双击它。在那里您可以放置任何内容(例如textBox1.Clear();)