【发布时间】:2013-02-18 19:32:58
【问题描述】:
我在 VS 2012 中为我的应用程序使用 C# 和 WinForms,我很好奇我应该使用什么样的例程来清除所有输入数据的方法,包括文本框、组合框和日期时间选择器.我用谷歌搜索并找到了一些“答案”,但似乎没有一个有效或实际上证明有帮助。
[编辑]:
我一直在研究,实际上发现了一个有用的方法,我只需要添加一些 if 就可以得到我想要的:
private void ResetFields()
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox)
{
TextBox tb = (TextBox)ctrl;
if (tb != null)
{
tb.Text = string.Empty;
}
}
else if (ctrl is ComboBox)
{
ComboBox dd = (ComboBox)ctrl;
if (dd != null)
{
dd.Text = string.Empty;
dd.SelectedIndex = -1;
}
}
else if (ctrl is DateTimePicker)
{
DateTimePicker dtp = (DateTimePicker)ctrl;
if (dtp != null)
{
dtp.Text = DateTime.Today.ToShortDateString();
}
}
}
}
【问题讨论】:
-
您正在寻找
magically清除表单上所有文本框等的机制? -
是的,我当然在寻找魔法......不是要添加到我的代码中的循环示例。我想要魔法。
-
不够好。您还必须检查孩子的所有孩子。看我的回答。
-
我的似乎工作正常。
-
那是因为你没有嵌套控件。如果在某个时候您决定添加一个带有文本框的面板怎么办?那么它就会失败。
标签: c# winforms combobox textbox datetimepicker