簡體   English   中英

在 C# 中是否有更高效的清除文本框的方法?

[英]Is there a more line efficient way of clearing textboxes in C#?

我正在尋找一種清除文本框的有效方法,最好是在函數中。

我試過使用:

 {
     Action<Control.ControlCollection> func = null;

     func = (controls) =>
         {
             foreach (Control control in controls)
                 if (control is TextBox)
                     (control as TextBox).Clear();
                 else
                     func(control.Controls);
         };

     func(Controls);
 }

上述解決方案的問題是我無法選擇要刪除哪些文本框。

TextBoxName.Text = ""; 上面的工作但是唯一的問題是它占用了 200 行我有 61 個框,我需要一個清除所有按鈕,它只清除 60 個框(除了一個)

我需要清晰的行按鈕,因為這些框是按行排列的

有 15 個清除行按鈕,每個按鈕有 4 個框,是否有我可以使用的 for 循環,它只會清除我需要的那些(如果可能,按名稱)?

您可以創建一組 TextBoxes 以根據它進行豁免和過濾。 例如,

var exceptionList = new[] { textBox1 };
foreach(var textBox in Controls.OfType<TextBox>().Where(x=> !exceptionList.Contains(x)))
{
   textBox.Clear();
}

如果要根據控件名稱進行過濾,可以使用

foreach(var textBox in Controls.OfType<TextBox>().Where(x=> !exceptionList.Contains(x.Name)))
{
   textBox.Clear();
}

其中exceptionList是需要豁免的 TextBox 名稱的集合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM