我有一个面板用户输入文本框中的字符串和数字计数器中的十进制数字和用户保存信息时的复选框或单击后退按钮我希望所有值都恢复为默认值(如果它是一个新的表格案例)它会自动执行,但在面板中,我看到controls.clear,但它删除所有面板文本框和东西任何方式只是创建一个新实例清除它们无论如何?
答案 0 :(得分:0)
Panels.Clear();将删除Panel容器中的所有子控件。您通常要做的是手动设置您希望返回默认值的控件的默认值,或者您可以迭代控件并重置它们。
我个人更喜欢在需要重置多种控件的情况下使用手动方法,否则可能会遇到一些问题。
以此为例:
Textbox.Text = "";
Textbox.Text = string.Empty;
Textbox.Text.Clear();
答案 1 :(得分:0)
您正在调用一种方法,可以从面板中删除所有控件。
相反,您应该在表单中编写一个方法,将方法控件中的每个值设置为适当的默认值。将文本框值设置为空字符串,数字更新为0.0,等等。命名方法ClearPanelValues()
或其他内容。如果要清除面板中的值,请调用ClearPanelControls()
。
public void ClearPanelValues()
{
textBox1.Text = "";
textBox2.Text = "";
numericUpDown1.Value = 0;
// etc. etc.
}
答案 2 :(得分:0)
您可以使用Controls Collection清除所有控件,而无需全部命名:
foreach (Control c in Page.Controls)
{
TextBox t = (c as TextBox);
NumericUpDown n = (c as NumericUpDown);
if (t != null)
t.Text = "";
if (n != null)
n.Value = 0;
}
您需要使用多个for循环或递归来处理子控件。