C#实现一键清空控件值的示例代码
作者:Csharp小记 发布时间:2021-11-12 12:10:15
标签: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参数,这里主要是用来处理一些有其他默认值不需要清除的情况,因为每个页面每个控件的处理逻辑是不一样的,为了使这个方法更具有全面性,所以提供了一个可以特殊处理的参数。
来源:https://mp.weixin.qq.com/s/ME4IVz0i5mNyfQQg9Yp6bw


猜你喜欢
- 本文实例讲述了C#读取csv格式文件的方法。分享给大家供大家参考。具体实现方法如下:一、CSV文件规则 1 开头是不留空,以行为单
- 本文实例为大家分享了java实现自动登录的具体代码,供大家参考,具体内容如下当你勾选(记住登录状态),用cookie保存用户名和密码。不勾选
- Spring bean配置单例或多例模式单例spring bean 默认是单例默认,在对应.xml文件中的配置是:<bean id=&
- 一、Mybatis简介Mybatis是一款超级无敌的持久层框架,它支持自定义SQL、存储过程以及高级映射。Mybatis可以通过简单的XML
- java获取Date时间的各种方式为大家分享如下常用的时间获取方式public class DateUtils {/** *
- 前言之前有人提到过取绝对值时 直接写三目运算符比用Mathf.Abs()效率高 没觉得能高太多今天测了一下 真是不测不知道 一测吓一跳 直接
- 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题。本篇主要从实例的角度分享下CORS
- 1. 并行和并发有什么区别?并行:多个处理器或多核处理器同时处理多个任务。并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执
- 前言相信大家在使用spring的项目中,前台传递参数到后台是经常遇到的事, 我们必须熟练掌握一些常用的参数传递方式和注解的使用,本文将给大家
- 目录什么是Insets?Insets相关类InsetsStateInsetsStateControllerInsetsSourceInset
- 一、Collection集合Collection接口是单列集合类的父接口,这种集合可以将数据一个一个的存放到集合中。它有两个重要的子接口,分
- 一、项目简述功能: 系统分为三个角色。最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,选课,退课,成绩查 询。,教学课程,查
- 获取Token/// <summary> /// 获取Token &nbs
- 涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法;这就需要我们
- 针对字符串是数字和字母结合而进行的,如"a20"和"a9";比较而得出结果是"a20&qu
- 前言dataGridView是常用的表格控件,实现分页的方式也有很多种,例如直接使用sql语言,配合存储方式,直接读取某一页的内容,大家如果
- Feature: 点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像。Problem: 拍好照片,点击裁剪,弹Toast“无法加载
- 在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:@Controller:在类上注解,则此类将编程一个控制器,在项目启动 S
- 本文介绍如何在使用C#开发WinForm程序时,获取程序文件的物理路径。这个物理路径可以用于定位程序所在的目录,从而进行日志创建等扩展操作。
- 本文实例讲述了java实现切割wav音频文件的方法。分享给大家供大家参考,具体如下:import it.sauronsoftware.jav