C# 在事件上使用通用的clear textbox方法
我有一个程序,里面有很多文本框,我想在点击时被清除,然后如果没有输入任何内容,用户点击离开,则重置为默认值 我要做的方式显然是低效的,每次都要给文本框命名,我想知道如何简化它 这就是我现在得到的,每次我都必须更改文本框字段名的txtUserNameC# 在事件上使用通用的clear textbox方法,c#,validation,input,textbox,C#,Validation,Input,Textbox,我有一个程序,里面有很多文本框,我想在点击时被清除,然后如果没有输入任何内容,用户点击离开,则重置为默认值 我要做的方式显然是低效的,每次都要给文本框命名,我想知道如何简化它 这就是我现在得到的,每次我都必须更改文本框字段名的txtUserName private void txtUserName_Click(object sender, EventArgs e) { txtUserName.Text = "" txtUserName.ForeColor = Color.Blac
private void txtUserName_Click(object sender, EventArgs e)
{
txtUserName.Text = ""
txtUserName.ForeColor = Color.Black;
}
有什么方法我能做到吗
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
string caller = //Get this textbox name
this.ClearBoxes(caller)
}
void ClearBoxes(string Caller)
{
Caller.txt.Text = "";
//..... and so on
}
您可以从事件的发件人处获取文本框的名称:
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
TextBox textBox = (TextBox)sender;
string caller = textBox.Name;
this.ClearBoxes(caller); // call your custom method
}
如果只想清除文本框文本,则无需获取其名称-可以使用它的清除方法:
您也可以考虑创建自定义文本框,该文本框会有一些默认值,当单击时,它会怨恨自己:默认值:
public class CustomTextBox : TextBox
{
public string DefaultText { get; set; }
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
Text = DefaultText;
}
}
使用自定义文本框而不是默认文本框,并为每个自定义文本框提供默认文本值,这些文本框应将自身重置为比空字符串更有意义的值。您可以使用“属性”窗口进行此操作。您可以从事件发送者处获取文本框的名称:
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
TextBox textBox = (TextBox)sender;
string caller = textBox.Name;
this.ClearBoxes(caller); // call your custom method
}
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
var textbox = sender as TextBox;
this.ClearTextbox(textbox)
}
private void ClearTextbox(TextBox textbox)
{
textbox.Text = "";
//...
}
如果只想清除文本框文本,则无需获取其名称-可以使用它的清除方法:
您也可以考虑创建自定义文本框,该文本框会有一些默认值,当单击时,它会怨恨自己:默认值:
public class CustomTextBox : TextBox
{
public string DefaultText { get; set; }
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
Text = DefaultText;
}
}
使用自定义文本框而不是默认文本框,并为每个自定义文本框提供默认文本值,这些文本框应将自身重置为比空字符串更有意义的值。您可以使用“属性”窗口进行此操作。是的,您可以尝试此操作,尽管它不是泛型的,但在这种情况下不需要泛型:
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
if(tb != null) tb.Text = "";
}
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
var textbox = sender as TextBox;
this.ClearTextbox(textbox)
}
private void ClearTextbox(TextBox textbox)
{
textbox.Text = "";
//...
}
您可以将此方法附加到所有文本框单击事件
我认为这行不通:
void ClearBoxes(string Caller)
{
Caller.txt.Text = "";
//..... and so on
}
如果您想使用ClearBox方法,您应该将其传递给TextBox元素。但不需要这样做,您可以直接清除TextBox,如上面的代码所示
此外,如果要同时清除所有文本框,例如单击一个按钮,则可以使用以下方法:
private void button1_Click(object sender, EventArgs e)
{
foreach (var tBox in this.Controls.OfType<TextBox>())
{
tBox.Text = "";
}
}
是的,您可以尝试此方法,尽管它不是泛型的,但在这种情况下不需要泛型:
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
if(tb != null) tb.Text = "";
}
您可以将此方法附加到所有文本框单击事件
我认为这行不通:
void ClearBoxes(string Caller)
{
Caller.txt.Text = "";
//..... and so on
}
如果您想使用ClearBox方法,您应该将其传递给TextBox元素。但不需要这样做,您可以直接清除TextBox,如上面的代码所示
此外,如果要同时清除所有文本框,例如单击一个按钮,则可以使用以下方法:
private void button1_Click(object sender, EventArgs e)
{
foreach (var tBox in this.Controls.OfType<TextBox>())
{
tBox.Text = "";
}
}
您可以使用sender参数来实现这一点
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
var textbox = sender as TextBox;
this.ClearTextbox(textbox)
}
private void ClearTextbox(TextBox textbox)
{
textbox.Text = "";
//...
}
您可以使用sender参数来实现这一点
private void txtAnyTextBox_Click(object sender, EventArgs e)
{
var textbox = sender as TextBox;
this.ClearTextbox(textbox)
}
private void ClearTextbox(TextBox textbox)
{
textbox.Text = "";
//...
}
这将是非常讨厌的-因为每次有人在文本框中单击时,都会导致页面重新加载 一种简单得多的方法是用javascript实现 只需添加一个清除文本框的函数,然后可能使用css选择器为每个要在其中使用它的文本框启用该函数 e、 g
这将在客户端完成所有操作,而不会导致任何回发。这将非常糟糕,因为每次有人单击文本框时,都会导致页面重新加载 一种简单得多的方法是用javascript实现 只需添加一个清除文本框的函数,然后可能使用css选择器为每个要在其中使用它的文本框启用该函数 e、 g
这将在客户端完成所有操作,而不会导致任何回发。您对水印文本框感兴趣吗?您对水印文本框感兴趣吗?谢谢,但我正在使用windows窗体进行此操作。哦,我明白了!Mu很抱歉,我以为这是一个web表单应用程序。谢谢,但我这次使用的是windows表单。哦,我明白了!我很抱歉,我以为这是一个web表单应用程序。