C#清除文本框中內(nèi)容問題之解答
如何用C#清除Form中所有的文本框內(nèi)容?
分兩種情況:
C#清除文本框中內(nèi)容(1)
當(dāng)所有的文本框都是頂級控件,即它們都直接位于this.Controls(或groupBox.Controls)中,此時遍歷一遍清除即可。
C#清除文本框中內(nèi)容(2)
當(dāng)文本框不全處于頂級,即部分包含在某些容器控件內(nèi),如groupBox中,由于控件在窗體中是嚴格分級擺放的。此時的文本框有的位于this.Controls中(即Form控件集中),有的則位于groupBox.Controls中。
對于(1),直接這樣寫就可:
- foreach (Control ctrl in Controls)//或為groupBox1.Controls/panel1.Controls
- {
- if (ctrl is TextBox)
- ctrl.Text = "";
- }
寫出這樣幾行簡單的代碼是為了強調(diào)一個地方,當(dāng)某些文本框是用戶自己定義的一個繼承TextBox的控件時,像上面那樣寫,都可識別,但若寫成:if (ctrl.GetType() == typeof(TextBox)),這種判斷方式相對嚴格,自定義文本框不會被識別。
為了解決(2)中提出的問題,可寫一個更為靈活通用的方法來檢測出這些文本框,并將之清空。方法如下:
- private void ClearText(Control ctrlTop)
- if (ctrlTop.GetType() == typeof(TextBox))
- ctrlTop.Text = "";
- else
- {
- foreach (Control ctrl in ctrlTop.Controls)
- {
- ClearText(ctrl); //循環(huán)調(diào)用
- }
- }
在需要的地方,直接調(diào)用ClearText(this),C#清除文本框中內(nèi)容的目的就達到了。
【編輯推薦】