Pour contrôler chaque formulaire, comment puis-je modifier quelque chose pour tous les TextBox de mon formulaire?

Comment utiliser une déclaration Foreach pour modifier quelque chose dans ma zone de texte?

foreach (Control X in this.Controls) { Check if the controls is a TextBox, if it is delete it's .Text letters. } 

Vous cherchez

 foreach (Control x in this.Controls) { if (x is TextBox) { ((TextBox)x).Text = Ssortingng.Empty; } } 

Si vous utilisez C # 3.0 ou supérieur, vous pouvez effectuer les opérations suivantes:

 foreach ( TextBox tb in this.Controls.OfType()) { .. } 

Sans C # 3.0, vous pouvez effectuer les opérations suivantes

 foreach ( Control c in this.Controls ) { TextBox tb = c as TextBox; if ( null != tb ) { ... } } 

Ou mieux encore, écrivez OfType en C # 2.0.

 public static IEnumerable OfType(IEnumerable e) where T : class { foreach ( object cur in e ) { T val = cur as T; if ( val != null ) { yield return val; } } } foreach ( TextBox tb in OfType(this.Controls)) { .. } 

L’astuce ici est que Controls n’est pas une List<> ou IEnumerable mais une ControlCollection .

Je recommande d’utiliser une extension de Control qui retournera quelque chose de plus..quiable;)

 public static IEnumerable All(this ControlCollection controls) { foreach (Control control in controls) { foreach (Control grandChild in control.Controls.All()) yield return grandChild; yield return control; } } 

Ensuite, vous pouvez faire:

 foreach(var textbox in this.Controls.All().OfType) { // Apply logic to the textbox here } 
 foreach (Control X in this.Controls) { if (X is TextBox) { (X as TextBox).Text = ssortingng.Empty; } } 

Vous pouvez faire ce qui suit:

 foreach (Control X in this.Controls) { TextBox tb = X as TextBox; if (tb != null) { ssortingng text = tb.Text; // Do something to text... tb.Text = ssortingng.Empty; // Clears it out... } } 

Aussi, vous pouvez utiliser LINQ. Par exemple, pour le Textbox clair de la Textbox texte, procédez comme Textbox :

 this.Controls.OfType().ToList().ForEach(t => t.Text = ssortingng.Empty); 

Ajoutez simplement d’autres types de contrôles:

 public static void ClearControls(Control c) { foreach (Control Ctrl in c.Controls) { //Console.WriteLine(Ctrl.GetType().ToSsortingng()); //MessageBox.Show ( (Ctrl.GetType().ToSsortingng())) ; switch (Ctrl.GetType().ToSsortingng()) { case "System.Windows.Forms.CheckBox": ((CheckBox)Ctrl).Checked = false; break; case "System.Windows.Forms.TextBox": ((TextBox)Ctrl).Text = ""; break; case "System.Windows.Forms.RichTextBox": ((RichTextBox)Ctrl).Text = ""; break; case "System.Windows.Forms.ComboBox": ((ComboBox)Ctrl).SelectedIndex = -1; ((ComboBox)Ctrl).SelectedIndex = -1; break; case "System.Windows.Forms.MaskedTextBox": ((MaskedTextBox)Ctrl).Text = ""; break; case "Infragistics.Win.UltraWinMaskedEdit.UltraMaskedEdit": ((UltraMaskedEdit)Ctrl).Text = ""; break; case "Infragistics.Win.UltraWinEditors.UltraDateTimeEditor": DateTime dt = DateTime.Now; ssortingng shortDate = dt.ToShortDateSsortingng(); ((UltraDateTimeEditor)Ctrl).Text = shortDate; break; case "System.Windows.Forms.RichTextBox": ((RichTextBox)Ctrl).Text = ""; break; case " Infragistics.Win.UltraWinGrid.UltraCombo": ((UltraCombo)Ctrl).Text = ""; break; case "Infragistics.Win.UltraWinEditors.UltraCurrencyEditor": ((UltraCurrencyEditor)Ctrl).Value = 0.0m; break; default: if (Ctrl.Controls.Count > 0) ClearControls(Ctrl); break; } } } 
 foreach (Control x in this.Controls) { if (x is TextBox) { ((TextBox)x).Text = Ssortingng.Empty; //instead of above line we can use *** x.resetText(); } } 

Vérifie ça:

 foreach (Control x in this.Controls) { if (x is TextBox) { x.Text = ""; } } 

simple en utilisant linq, changez comme bon vous semble quel que soit votre contrôle.

  private void DisableButtons() { foreach (var ctl in Controls.OfType 

Mieux encore, vous pouvez encapsuler ceci pour effacer tout type de contrôles de votre choix dans une méthode, comme ceci:

 public static void EstadoControles(object control, bool estado, bool limpiar = false) where T : Control { foreach (var textEdits in ((T)control).Controls.OfType()) textEdits.Enabled = estado; foreach (var textLookUpEdits in ((T)control).Controls.OfType()) textLookUpEdits.Enabled = estado; if (!limpiar) return; { foreach (var textEdits in ((T)control).Controls.OfType()) textEdits.Text = ssortingng.Empty; foreach (var textLookUpEdits in ((T)control).Controls.OfType()) textLookUpEdits.EditValue = @"-1"; } } 
 private IEnumerable GetTextBoxes(Control control) { if (control is TextBox textBox) { yield return textBox; } if (control.HasChildren) { foreach (Control ctr in control.Controls) { foreach (var textbox in GetTextBoxes(ctr)) { yield return textbox; } } } }