我有一个包含许多textBox的tabControl,我想添加一个按钮来一次清除所有textBoxes的文本,我尝试了此代码:
private void ClearButton_Click(object sender, EventArgs e)
{
foreach (TextBox t in tabControl1.SelectedTab.Controls)
{
t.Clear();
}
}
但是此代码不起作用,我收到此错误消息:
无法将类型为'System.Windows.Forms.Button'的对象转换为类型为'System.Windows.Forms.TextBox
此代码有什么问题?
尝试此代码:
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);
}
您在foreach循环中获得了所有控件(不仅是文本框)
尝试这样的事情:
foreach (TextBox t in tabControl1.SelectedTab.Controls.OfType<TextBox>())
{
t.Clear();
}
并非所有控件都是文本框。这样做:
foreach (Control t in tabControl1.SelectedTab.Controls)
{
if(t is TextBox)
((TextBox)t).Clear();
}