我有一个带有文本字段的 Windows 窗体。我希望文本框显示示例文本,当我单击文本框时,文本被清除。做这个的最好方式是什么?
例如,表单显示文本:192.18.130.44,当用户单击该文本框时,文本被清除。
使用Enter
事件:
private void textBox_Enter(Object sender, EventArgs e)
{
textBox.Text = null;
}
虽然,除非您希望它始终清晰,否则我也会在那里进行一些验证!
顺便说一句......CueProvider
如果你不介意第 3 方的东西,那个链接看起来也很漂亮。
我想你想显示Text
一个文本框的默认值,如果它只是聚焦而没有任何编辑,默认值Text
将在失去焦点时恢复,如下所示:
string initText = "Love .NET";
bool edited;
//This code line is just for demonstrative purpose, it should be placed such as in the Form constructor
textBox1.Text = initText;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
edited = !char.IsControl(e.KeyChar);
}
private void textBox1_Enter(object sender, EventArgs e)
{
if(!edited) textBox1.Clear();
}
private void textBox1_Leave(object sender, EventArgs e)
{
if (!edited) textBox1.Text = initText;
}
如果您想让文本看起来像watermark
,您可能需要相应地应用更多Font
或ForeColor
一些自定义 Paint(如果需要)。最后一个是使用第三方文本框,这取决于你。
要使其显示示例文本,请将属性菜单中的 text 属性设置为您想要的,例如 192.18.120.44
为了在点击时清楚,为点击事件创建一个方法并执行 txtbox1.Text = ""; 您可以通过双击文本框来启动此方法。
当你加载你的 winforms 时,检查文本框是空的还是空的。
然后,如果是,请显示您的示例文本,并将布尔值设置为 true(如果文本不为空,则为 false)。
然后,在您的文本框上编写一个单击事件,如果布尔值为真,则清除内容,如果布尔值为假,则无任何内容,以避免清除文本框,如果他包含您的示例中的其他内容..