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";

}

clear() で置換するための foreach ループ メソッドの使用方法..教えてください..誰か... foreach ループを書くことは可能ですか...教えてください

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

この拡張メソッドを使用できます:

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);
    }

使用する :

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

フォーム上のすべてのコントロールをクリアするためのコード(質問に答える)を次に示します。

別の方法

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