1. 程式人生 > >c#快速清除所有文字框中內容(轉)

c#快速清除所有文字框中內容(轉)

如何清除Form中所有的文字框內容?分兩種情況:(1)當所有的文字框都是頂級控制元件,即它們都直接位於this.Controls(或groupBox.Controls)中,此時遍歷一遍清除即可。(2)當文字框不全處於頂級,即部分包含在某些容器控制元件內,如groupBox中,由於控制元件在窗體中是嚴格分級擺放的。此時的文字框有的位於this.Controls中(即Form控制元件集中),有的則位於groupBox.Controls中。

    對於(1),直接這樣寫就可:

//或為groupBox1.Controls/panel1.Controls
foreach
(Control ctrl in Controls) { if (ctrl is TextBox) ctrl.Text = ""; }

 寫出這樣幾行簡單的程式碼是為了強調一個地方,當某些文字框是使用者自己定義的一個繼承TextBox的控制元件時,像上面那樣寫,都可識別,但若寫成:if (ctrl.GetType() == typeof(TextBox)),這種判斷方式相對嚴格,自定義文字框不會被識別。

    為了解決(2)中提出的問題,可寫一個更為靈活通用的方法來檢測出這些文字框,並將之清空。方法如下:

private
void ClearText(Control ctrlTop) {<br> if (ctrlTop.GetType() == typeof(TextBox)) ctrlTop.Text = ""; else { foreach (Control ctrl in ctrlTop.Controls) { ClearText(ctrl); //迴圈呼叫 } } }