4
 public void clear()
  {
    lblage.Text = "";
    lblclosingbirds.Text = "";
    lbltypeoffeed.Text = "";
    lbltypeoffeedf.Text = "";
    lblstdfeed.Text = "";
    lblstdfeedf.Text = "";
    lblstdhd.Text = "";
    lblstdhe.Text = "";
    lblExpeggs.Text = "";
    lblbirdsf.Text = "";
    txtacteggs.Text = "";
    txtactfeed.Text = "";
    txtactfeedf.Text = "";      
    txtfemaleclosingstock50.Text = "";
    txtfemaleclosingstock70.Text = "";
    txtmale50kgcstock.Text = "";
    txtmale70kgscstock.Text = "";
    txtmort.Text = "";
    txtmortf.Text = "";
    txtuseeggs.Text = "";
    ddlFemaleFeedtype.SelectedValue = "0";
    ddlMaleFeedtype.SelectedValue = "0";

}

how to use foreach loop method for replace with clear()..please tell me.. any one... is it possible to write foreach loop...please tell me

4

4 回答 4

6
void ClearAllControlsRecursive(Control container)
{
    foreach(var control As Control in container.Controls)
    {
        if(typeof control is TextBox)
        {
            ((TextBox)control).Text = String.Empty;
        }
        if(control.HasControls())
        {
            ClearAllControlsRecursive(control);  
        }
    }
}

然后像这样调用这个方法:

ClearAllControlsRecursive(yourContainer);

您还可以打开控件类型并相应地清除值。

于 2013-10-03T08:54:34.073 回答
2
void ClearAllControlsRecursive(Control container)
{
    foreach (var control in container.Controls)
    {



        if (control is TextBox)
        {
            ((TextBox)control).Text = String.Empty;
        }


    }
}

我把这种方法称为......

ClearAllControlsRecursive(panel1);
于 2013-10-03T10:02:20.667 回答
1

你可以试试这样

foreach (object control in form1.Controls) {
    if (control is TextBox) {
        control.Text = "";
    }
}
于 2013-10-03T08:55:30.693 回答
0

you can use this extension method :

public static IEnumerable<TControl> GetChildControls(this Control control) where TControl : Control
    {
        var children = (control.Controls != null) ? control.Controls.OfType<TControl>() : Enumerable.Empty<TControl>();
        return children.SelectMany(c => GetChildControls(c)).Concat(children);
    }

use :

foreach (TextBox tb in this.GetChildControls<TextBox>())
{
    tb.Text = String.Empty;
}

and here is a code(answer the question) for clear all controls on the form.

Another method :

yourForm.Controls.OfType<TextBox>().ToList().ForEach(textBox => textBox.Clear());
于 2013-10-03T08:57:19.400 回答