0

我有一个带有文本字段的 Windows 窗体。我希望文本框显示示例文本,当我单击文本框时,文本被清除。做这个的最好方式是什么?

例如,表单显示文本:192.18.130.44,当用户单击该文本框时,文本被清除。

4

4 回答 4

2

使用Enter事件:

private void textBox_Enter(Object sender, EventArgs e)
{
    textBox.Text = null;
}

虽然,除非您希望它始终清晰,否则我也会在那里进行一些验证!

顺便说一句......CueProvider如果你不介意第 3 方的东西,那个链接看起来也很漂亮。

于 2013-06-21T14:29:29.877 回答
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,您可能需要相应地应用更多FontForeColor一些自定义 Paint(如果需要)。最后一个是使用第三方文本框,这取决于你。

于 2013-06-21T14:43:19.007 回答
1

要使其显示示例文本,请将属性菜单中的 text 属性设置为您想要的,例如 192.18.120.44

为了在点击时清楚,为点击事件创建一个方法并执行 txtbox1.Text = ""; 您可以通过双击文本框来启动此方法。

于 2013-06-21T14:29:12.393 回答
0

当你加载你的 winforms 时,检查文本框是空的还是空的。

然后,如果是,请显示您的示例文本,并将布尔值设置为 true(如果文本不为空,则为 false)。

然后,在您的文本框上编写一个单击事件,如果布尔值为真,则清除内容,如果布尔值为假,则无任何内容,以避免清除文本框,如果他包含您的示例中的其他内容..

于 2013-06-21T14:30:59.097 回答