C# 一键清空控件值

_场景:_在任何一个Form表单的操作页面或者数据台账的查询页面,基本都会看到一个清除的按钮,其功能就是用来清除我们需要抛弃的已经写入到控件内的数据。如果一个个控件来处理的话,想必会非常麻烦,而且系统不单单只是一个页面,多个页面要处理起来的话,痛苦程度已经是我们不能忍受的了。


_需求:_所以,综上场景所述,我们就需要封装个一键清除方法来实现,然后将这个方法放入到BaseForm中,其继承的窗体就可以直接使用了。

开发环境:.NET Framework版本:4.5

开发工具: Visual Studio 2013

实现代码:

/// <summary>
        /// 清空查询条件
        /// </summary>
        /// <param name="parent">父控件</param>
        /// <param name="action">需要特殊处理的事件</param>
        public void ClearValue(Control parent, System.Action action = null)
        {
            foreach (Control c in parent.Controls)
            {
                if (c.HasChildren)
                {
                    ClearValue(c, action);
                }
                switch (c.GetType().Name)
                {
                    case "TextBox":
                        ((TextBox)c).Text = "";
                        break;
                    case "ComboBox":
                        ((ComboBox)c).Text = "";
                        break;
                    case "CheckBox":
                        ((CheckBox)c).Checked = false;
                        break;
                    case "RadioButton":
                        ((RadioButton)c).Checked = false;
                        break;
                    case "DateTimePicker":
                        ((DateTimePicker)c).Value = DateTime.Now;
                        break;
                }
            }
            if (action != null)
            {
                action.Invoke();
            }
        } 
   private void btn_clear_Click(object sender, EventArgs e)
        {
            ClearValue(this);
        }

        private void btn_vip_Click(object sender, EventArgs e)
        {
            ClearValue(this, () =>
            {
                checkBox1.Checked = true;
            });
        }

实现效果:

_代码解析:_首先是时间控件,没有清空可以看代码中的赋值情况,这里是默认又给重新赋值了当前时间,所以没有做任何改变;然后就是清除控件的方法增加了一个Action参数,这里主要是用来处理一些有其他默认值不需要清除的情况,因为每个页面每个控件的处理逻辑是不一样的,为了使这个方法更具有全面性,所以提供了一个可以特殊处理的参数。

由简入繁,拿来即用

更多精彩,请持续关注公众号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值