通常我們想找Winform中的所有控制項,只要底下這段就可以完成
VB:
For Each Ctl As Control In Me.Controls
'在此可以判斷控制項的類別
If TypeOf Ctl Is TextBox Then
Ctl.Text = ""
End If
Next
C#:
foreach (Control Ctl in this.Controls) {
//在此可以判斷控制項的類別
if (Ctl is TextBox) {
Ctl.Text = "";
}
}
但是若Winform裡,
如果有用到像Panel 、TabControl、GroupBox等容器控制項
上面區塊程式碼無法讓我們尋覽Winform所有控制項
所以查看現在這個控制像是否有子控制項,而且必須繼續往下找
如下面第二段程式碼
VB:
Private Sub Clear()
For Each Ctl As Control In Me.Controls
FindSubControl(Ctl)
Next
End Sub
Sub FindSubControl(Ctl As Control)
'判斷是否有子控制項
If Ctl.Controls.Count > 0 Then
For Each Ctl1 As Control In Ctl.Controls
'繼續往下找(遞迴)
ClearTextBox(Ctl1)
Next
Else
'若沒有就在這裡判斷控制項並結束遞迴
If TypeOf Ctl Is TextBox Then
Ctl.Text = ""
End If
End If
End Sub
C#:
private void Clear()
{
foreach (Control Ctl in this.Controls) {
FindSubControl(Ctl);
}
}
public void FindSubControl(Control Ctl)
{
//判斷是否有子控制項
if (Ctl.Controls.Count > 0) {
foreach (Control Ctl1 in Ctl.Controls) {
//繼續往下找(遞迴)
ClearTextBox(Ctl1);
}
} else {
//若沒有就在這裡判斷控制項並結束遞迴
if (Ctl is TextBox) {
Ctl.Text = "";
}
}
}
留言列表