目录
- 场景
- 需求
- 开发环境
- 开发工具
- 实现代码
- 实现效果
- 代码解析
场景
在任何一个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参数,这里主要是用来处理一些有其他默认值不需要清除的情况,因为每个页面每个控件的处理逻辑是不一样的,为了使这个方法更具有全面性,所以提供了一个可以特殊处理的参数。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)