【发布时间】:2019-05-24 13:19:50
【问题描述】:
我有一个清除非 MDI 子窗体的函数,但是当我将它应用到 MDI 子窗体时,它什么也没做。我已经尝试从几个不同的角度解决这个问题,但没有任何运气,希望 stackoverflow 可以提供帮助!
我已经尝试了显示的代码,我还尝试引用当前表单的父级的子级(我知道这是循环的)。
public static void ResetAllControls(Control form)
{
foreach (Control control in form.Controls)
{
if (control is TextBox)
{
TextBox textBox = (TextBox)control;
textBox.Text = "";
}
if (control is ComboBox)
{
ComboBox comboBox = (ComboBox)control;
if (comboBox.Items.Count > 0)
comboBox.SelectedIndex = 0;
}
if (control is CheckBox)
{
CheckBox checkBox = (CheckBox)control;
checkBox.Checked = true;
}
if (control is ListBox)
{
ListBox listBox = (ListBox)control;
listBox.ClearSelected();
}
}
}
我希望传递 this 会像处理标准表单一样清除所有表单控件。
【问题讨论】:
-
到目前为止,从头开始最简单的方法是关闭这个并创建一个表单类的新实例。
-
这个方法是怎么调用的?你通过什么参考?顺便说一句,当您以这种方式设置属性时,它不会导致级联效果,例如
checkBox.Checked = true;、comboBox.SelectedIndex = 0;?