2013-02-18 78 views
0

我在VS 2012中使用C#和WinForms進行應用程序工作,我很好奇我應該使用什麼樣的例程來清除輸入數據的所有方法,包括文本框,組合框和日期時間選擇器。我谷歌搜索,並找到了一些'答案',但似乎沒有工作或實際證明有幫助。如何在C#中的WinForm中清除所有Textboxes,Comboboxes和DateTimePickers?

[編輯]:

我一直在研究和居然發現一個有用的方法,我只是不得不添加一些IFS來得到我想要的東西:

private void ResetFields() 
    { 
     foreach (Control ctrl in this.Controls) 
     { 
      if (ctrl is TextBox) 
      { 
       TextBox tb = (TextBox)ctrl; 
       if (tb != null) 
       { 
        tb.Text = string.Empty; 
       } 
      } 
      else if (ctrl is ComboBox) 
      { 
       ComboBox dd = (ComboBox)ctrl; 
       if (dd != null) 
       { 
        dd.Text = string.Empty; 
        dd.SelectedIndex = -1; 
       } 
      } 
      else if (ctrl is DateTimePicker) 
      { 
       DateTimePicker dtp = (DateTimePicker)ctrl; 
       if (dtp != null) 
       { 
        dtp.Text = DateTime.Today.ToShortDateString(); 
       } 
      } 
     } 
    } 
+0

你正在尋找一種機制,「神奇」清除你的窗體上的所有文本框等? – bas 2013-02-18 19:34:02

+0

是的,當然我正在尋找魔法......不是一個循環添加到我的代碼的例子。我想*魔法*。 – Claire 2013-02-18 19:53:35

+0

不夠好。你必須檢查所有兒童的孩子。看到我的答案。 – ispiro 2013-02-18 19:54:05

回答

2

東西這樣:

void ClearThem(Control ctrl) 
{ 
    ctrl.Text = ""; 
    foreach (Control childCtrl in ctrl.Controls) ClearThem(childCtrl); 
} 

然後:

ClearThem(this); 

另一種選擇: 創建一個類從派生面板上有你需要的所有東西,並將它放在For中米當您需要「刷新」時 - 只需用該面板的新實例替換該面板即可。

0

遍歷窗體控件,匹配他們到你的類型,並將其設置爲「」或null;

1

你可以只在窗體的所有控件環路和明確的依據控制型

1

我們可以清除所有TextboxesComboboxes但不是DateTimePicker

如果你想清除DateTimePicker你必須設置屬性:要在DateTimePicker

private void dateTimePicker1_CloseUp(object sender, EventArgs e) 
    { 
     dateTimePicker1.Format = DateTimePickerFormat.Short; 
    } 
選擇日期 Format = CustomCustomFormat = " "和時間

這可能是解決:

public static void ClearAll(Control control) 
    { 
     foreach (Control c in control.Controls) 
     { 
      var texbox = c as TextBox; 
      var comboBox = c as ComboBox; 
      var dateTimePicker = c as DateTimePicker; 

      if (texbox != null) 
       texbox.Clear(); 
      if (comboBox != null) 
       comboBox.SelectedIndex = -1; 
      if (dateTimePicker != null) 
      { 
       dateTimePicker.Format = DateTimePickerFormat.Short; 
       dateTimePicker.CustomFormat = " "; 
      } 
      if (c.HasChildren) 
       ClearAll(c); 
     } 
    } 
+0

考慮dateTimePicker1.Value = DateTime.Today – 2014-10-15 06:51:08

相關問題