C# Winform-覆盖文本框以显示示例文本并单击清除

C# Winform-覆盖文本框以显示示例文本并单击清除,c#,winforms,textbox,C#,Winforms,Textbox,我有一个带有文本字段的windows窗体。我希望文本框显示示例文本,当我单击文本框时,文本被清除。最好的方法是什么 e、 g.表单显示文本:192.18.130.44,当用户单击该文本框时,文本被清除。要使其显示示例文本,请将“属性”菜单中的“文本”属性设置为所需,例如192.18.120.44 要在单击时明确,请为单击事件创建一个方法,然后执行txtbox1.Text=“”; 您可以通过双击文本框来启动此方法。要使其显示示例文本,请将“属性”菜单中的“文本”属性设置为所需,例如192.18.1

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


e、 g.表单显示文本:192.18.130.44,当用户单击该文本框时,文本被清除。

要使其显示示例文本,请将“属性”菜单中的“文本”属性设置为所需,例如192.18.120.44

要在单击时明确,请为单击事件创建一个方法,然后执行txtbox1.Text=“”;
您可以通过双击文本框来启动此方法。

要使其显示示例文本,请将“属性”菜单中的“文本”属性设置为所需,例如192.18.120.44

要在单击时明确,请为单击事件创建一个方法,然后执行txtbox1.Text=“”;
您可以通过双击文本框来启动此方法。

使用
Enter
事件:

private void textBox_Enter(Object sender, EventArgs e)
{
    textBox.Text = null;
}
尽管如此,除非你希望它总是清晰的,否则我也会在里面加上一些验证


顺便说一句,
CueProvider
的链接看起来也很光滑,如果你不介意第三方的东西的话。

使用
输入
事件:

private void textBox_Enter(Object sender, EventArgs e)
{
    textBox.Text = null;
}
尽管如此,除非你希望它总是清晰的,否则我也会在里面加上一些验证


顺便说一句,
CueProvider
的链接看起来也很流畅,如果你不介意第三方的东西的话。

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

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


然后,在文本框上写一个单击事件,如果布尔值为true,则清除内容;如果布尔值为false,则不清除任何内容。为了避免清除文本框,如果它包含您的示例中包含的其他内容。

加载winforms时,请检查文本框是否为null或空

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


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

我想你想显示文本框的默认
文本,如果它只是聚焦而没有任何编辑,默认的
文本
将在失去焦点时恢复,如下所示:

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;
}

如果要使文本看起来像
水印
,可能需要相应地应用更多的
字体
前景色
,或者根据需要应用一些自定义油漆。最后一个是使用第三方文本框,这取决于您。

我认为您希望显示文本框的默认
文本
,如果它只是在没有任何编辑的情况下聚焦,则默认
文本在失去焦点时将恢复,如下所示:

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;
}

如果要使文本看起来像
水印
,可能需要相应地应用更多的
字体
前景色
,或者根据需要应用一些自定义油漆。最后一种是使用第三方文本框,这取决于您。

在文本框上创建单击事件,以清除内容。onClick event TextBoxName.Text=“”;?我建议您使用水印文本框。这是一些样品。在文本框上进行单击事件,以清除内容。onClick event TextBoxName.Text=“”;?我建议您使用水印文本框。这是一些样品+1因为它考虑了用户是否编辑了文本,因为可能当用户编辑文本时,您不希望在他们单击“关闭”时清除该文本,然后单击“上一步”。+1,因为它会考虑用户是否编辑了文本,因为当用户编辑文本时,您可能不希望在他们单击“关闭”时清除该文本,然后单击“上一步”。