2013-10-03 4 views
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"; 

} 

, как использовать метод Еогеасп цикла для замены с ясно() .. пожалуйста, скажите мне .. любой один ... можно ли написать Еогеасп петлю ... пожалуйста скажите мнеКак использовать foreach loop для очистки всех текстовых полей?

ответ

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

Вы также можете включить тип управления и соответственно очистить значения.

+0

Еогеасп (управление вар в качестве контроля в (pnl.HasControls())) {} – Sambasiva

+0

Нет, вам нужно поместить цикл for в метод, который принимает параметр container. Затем вы можете сделать его рекурсивным. Я отредактировал свой ответ на примере. – CharlesAD

+0

Тогда вы должны задать другой вопрос на этом сайте. Но прежде чем вы это сделаете, убедитесь, что вы действительно пытаетесь отлаживать и кодировать его. Это не сайт «сделать мою домашнюю работу». – CharlesAD

1

вы можете попробовать, как этот

foreach (object control in form1.Controls) { 
    if (control is TextBox) { 
     control.Text = ""; 
    } 
} 
+0

Я использую страницу .aspx ... так что .. как это работает .. можете ли вы рассказать мне на странице aspx.cs ... он не используется shekhar – Sambasiva

+0

ваш код полезен в приложении Windows Form, но на странице aspx .. это не работает shekhar .... так .. как реализовать на странице aspx – Sambasiva

+0

можно сказать другой способ, пожалуйста? – Sambasiva

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

и here является кодом (ответ на вопрос) для очистить все элементы управления формы.

Другой метод:

yourForm.Controls.OfType<TextBox>().ToList().ForEach(textBox => textBox.Clear()); 
2
void ClearAllControlsRecursive(Control container) 
{ 
    foreach (var control in container.Controls) 
    { 



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


    } 
} 

и я кал этот метод как ...

ClearAllControlsRecursive(panel1); 
Смежные вопросы