我有一个带有文本字段的窗体。我希望文本框显示示例文本,当我单击文本框时,文本将被清除。这样做的最佳方式是什么?
e.g。表单显示文本:192.18.130.44,当用户点击该文本框时,文本被清除。
答案 0 :(得分:2)
使用Enter
事件:
private void textBox_Enter(Object sender, EventArgs e)
{
textBox.Text = null;
}
虽然,除非您希望总是清除,否则我也会在那里进行一些验证!
BTW ...... CueProvider
的链接看起来也很漂亮,如果你不介意第三方的话。
答案 1 :(得分:2)
我认为你想要显示文本框的默认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
,或者根据需要应用一些自定义绘图。最后一个是使用第三方文本框,这取决于你。
答案 2 :(得分:1)
要使其显示示例文本,请将属性菜单中的text属性设置为您想要的内容,例如192.18.120.44
要点击清楚,请为click事件创建一个方法并执行txtbox1.Text =“”; 您可以通过双击文本框来启动此方法。
答案 3 :(得分:0)
加载winforms时,请检查文本框是空还是空。
然后,如果是,则显示您的示例文本,并将布尔值设置为true(如果文本不为空,则为false)。
然后,在textBox上写一个click事件,如果boolean为true则清除内容,如果boolean为false则清除任何内容,以避免清除textBox,如果他包含你的样本的其他东西..