C# 清除所有文本框文本
我有一个包含许多文本框的tabControl,我想添加一个按钮来一次性清除所有文本框的文本,我尝试了以下代码:C# 清除所有文本框文本,c#,textbox,C#,Textbox,我有一个包含许多文本框的tabControl,我想添加一个按钮来一次性清除所有文本框的文本,我尝试了以下代码: private void ClearButton_Click(object sender, EventArgs e) { foreach (TextBox t in tabControl1.SelectedTab.Controls) { t.Clear(); } } void ClearTextBoxes(Control parent) {
private void ClearButton_Click(object sender, EventArgs e)
{
foreach (TextBox t in tabControl1.SelectedTab.Controls)
{
t.Clear();
}
}
void ClearTextBoxes(Control parent)
{
foreach (Control child in parent.Controls)
{
TextBox textBox = child as TextBox;
if (textBox == null)
ClearTextBoxes(child);
else
textBox.Text = string.Empty;
}
}
private void ClearButton_Click(object sender, EventArgs e)
{
ClearTextBoxes(tabControl1.SelectedTab);
}
但此代码不起作用,我收到了以下错误消息:
无法将“System.Windows.Forms.Button”类型的对象强制转换为“System.Windows.Forms.TextBox”类型
这段代码怎么了?您得到的是所有控件,而不仅仅是foreach循环中的文本框 试着这样做:
foreach (Control t in tabControl1.SelectedTab.Controls)
{
if(t is TextBox)
((TextBox)t).Clear();
}
您试图遍历每个控件,其中一些控件不是TextBox控件 您可以使用指定感兴趣的控件,而不是:
foreach (TextBox t in tabControl1.SelectedTab.Controls.OfType<TextBox>())
{
t.Clear();
}
并非所有控件都是文本框。这样做:
private void ClearButton_Click(object sender, EventArgs e)
{
foreach (var control in tabControl1.SelectedTab.Controls)
{
if(control is TextBox)
{
TextBox t = (TextBox)control;
t.Clear();
// or short:
// ((TextBox) control).Clear();
}
}
}
请尝试以下代码:
private void ClearButton_Click(object sender, EventArgs e)
{
foreach (TextBox t in tabControl1.SelectedTab.Controls)
{
t.Clear();
}
}
void ClearTextBoxes(Control parent)
{
foreach (Control child in parent.Controls)
{
TextBox textBox = child as TextBox;
if (textBox == null)
ClearTextBoxes(child);
else
textBox.Text = string.Empty;
}
}
private void ClearButton_Click(object sender, EventArgs e)
{
ClearTextBoxes(tabControl1.SelectedTab);
}
我喜欢这对我来说不起作用,我以前试过,但我收到一条错误信息这是错误信息:不可能的d'activer les Contraines。如果我删除此代码,我的应用程序运行时不会出错,那么此代码与违反非null的行为之间的关系是什么,唯一或外键约束???好的,谢谢你,我在询问之前尝试了一些解决方案,但在这里对我不起作用。它对我不起作用我以前试过,但收到一条错误消息