2016年3月16日 星期三

C#控制項初始化

假設一個程式設計form內有panel,panel內還有其他控制項
如果在一開始將form傳進函式,
foreach迴圈並不會讀到包含在panel內的控制項!
因此需要遞迴呼叫,將panel傳進函式,
執行函式時才會將panel內的控制項初始化。


程式範例

public static void ControlClear(Control.ControlCollection control)
{
      foreach (Control element in control)
      {
            if (element is Panel)
                  ControlClear(element.Controls);
                  //遞迴呼叫,清空自己範圍的控制項
            else if (element is TextBox)
                  ((TextBox)element).Text = "";
                  //文字清空
            else if (element is DateTimePicker)
                  ((DateTimePicker)element).Value = System.DateTime.Now;
                  //設定為「現在日期時間」
            else if (element is ComboBox)
                  ((ComboBox)element).SelectedIndex = -1;
                  //選取索引-1表示未選取
            else if (element is RadioButton)
                  ((RadioButton)element).Checked = false;
                  //設定為未選取
      }
}

沒有留言:

張貼留言