簡體   English   中英

如何在C#中清除WinForm上的所有文本框,組合框和DateTimePickers?

[英]How do I clear all Textboxes, Comboboxes, and DateTimePickers on a WinForm in C#?

我在VS 2012中使用C#和WinForms開發應用程序,並且很好奇我應該使用哪種例程清除輸入數據的所有方法,包括文本框,組合框和日期時間選擇器。 我已經用Google搜索並找到了一些“答案”,但似乎沒有一個起作用或實際上沒有幫助。

[編輯]:

我一直在研究,實際上找到了一種有用的方法,我只需要添加一些if即可獲得想要的結果:

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();
                }
            }
        }
    }

這樣:

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

接着:

ClearThem(this);

另一個選擇:創建一個從Panel派生的類,其中包含您需要的所有內容,並將其停靠在Form中。 當您需要“刷新”時,只需將該面板替換為該面板的新實例即可。

您可以循環訪問表單中的所有控件,然后根據控件類型進行清除

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

如果要清除DateTimePicker ,則必須設置以下屬性: Format = CustomCustomFormat = " "以及要在DateTimePicker選擇日期的時間

    private void dateTimePicker1_CloseUp(object sender, EventArgs e)
    {
        dateTimePicker1.Format = DateTimePickerFormat.Short;
    }

這可能是解決方案:

    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);
        }
    }

循環瀏覽表單控件,將其與您的類型匹配,然后將其設置為“”或null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM