WinForm 清空介面控制項值的小技巧

來源:互聯網
上載者:User

本文轉自:http://www.cnblogs.com/kerrycode/archive/2010/02/05/1664267.html

 

在WinForm裡面有時候需要清空自己輸入內容或是選擇的選項,以便重新操作流程,那麼一般你是怎麼清空介面各個控制項值的呢?如果表單裡面控制項,尤其是TextBox控制項比較多的時候,代碼裡面是不是要設定每個控制項的Text屬性值為空白呢?下面我用這個例子,來探討下清空介面控制項值的小技巧。而且還能複用。不必每個表單都做這些枯燥、無聊的工作。

一般的做法是在清除控制項的事件裡面添加下面這樣的代碼:

代碼

       private void btnClear_Click(object sender, EventArgs e)
        {
            this.txbAccount.Text = "";
            this.txbAddress.Text = "";
            this.txbCmp.Text = "";
            this.chkCash.Checked = false;
            this.cmbDepart.Text = "";

            //.............表單裡面各類要清空控制項;
        }

 

 設想如果這樣做,一個表單我們清空介面需用10行代碼,50個表單那麼就是500行代碼,大量重複的勞動,如果我們用下面這種方法的話,那麼項目裡面代碼量將大大減少,而且封裝到類裡面,可以重用。(當然這個函數還可以重載、擴充,以便適應不同的需求)

private void btnClear_Click(object sender, EventArgs e)
{
     ClearCntrValue(this.pnlContent);
}

 

 

代碼

/// <summary>
        /// 清除容器裡面某些控制項的值
        /// </summary>
        /// <param name="parContainer">容器類控制項</param>
        public void ClearCntrValue(Control parContainer)
        {
            for (int index = 0; index < parContainer.Controls.Count; index++)
            {
                // 如果是容器類控制項,遞迴調用自己
                if (parContainer.Controls[index].HasChildren)
                {
                    ClearCntrValue(parContainer.Controls[index]);
                }
                else
                {
                    switch(parContainer.Controls[index].GetType().Name)
                    {
                        case "TextBox":
                            parContainer.Controls[index].Text = "";
                            break;
                        case "RadioButton":
                            ((RadioButton)(parContainer.Controls[index])).Checked = false;
                            break;
                        case "CheckBox":
                            ((CheckBox)(parContainer.Controls[index])).Checked = false;
                            break;
                        case "ComboBox":
                            ((ComboBox)(parContainer.Controls[index])).Text = "";
                            break;
                    }
                }
            }
        }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.