C#实现一键清空控件值的示例代码
作者:Csharp小记 时间:2021-11-12 12:10:15
场景
在任何一个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#,清空,控件值
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java超详细讲解设计模式中的命令模式
2023-07-26 15:23:11
SpringBoot如何返回Json数据格式
2023-01-12 16:28:51
![](https://img.aspxhome.com/file/2023/0/61390_0s.png)
计算字符串和文件MD5值的小例子
2023-12-10 20:31:19
C#使用Matrix执行缩放的方法
2022-05-03 15:46:58
如何将javaweb项目部署到linux下
2023-11-11 11:45:11
自定义类加载器以及打破双亲委派模型解析
2023-06-22 22:03:59
![](https://img.aspxhome.com/file/2023/0/57400_0s.png)
java8实现List中对象属性的去重方法
2023-08-30 20:50:48
C# Winform实现自定义漂亮的通知效果
2021-08-10 08:15:29
Lombok为啥这么牛逼?SpringBoot和IDEA官方都要支持它
2021-10-18 23:04:50
![](https://img.aspxhome.com/file/2023/7/64497_0s.png)
简单捋捋@RequestParam 和 @RequestBody的使用
2022-11-02 16:19:20
![](https://img.aspxhome.com/file/2023/4/67694_0s.png)
Java中Jackson快速入门
2023-01-18 10:24:44
Java获取彩色图像中的主色彩的实例代码
2021-10-16 01:09:39
![](https://img.aspxhome.com/file/2023/2/67172_0s.png)
java8 Stream list to Map key 重复 value合并到Collectio的操作
2022-02-01 23:53:58
springboot扩展MVC的方法
2023-12-15 14:19:05
![](https://img.aspxhome.com/file/2023/0/70270_0s.png)
使用Java桥接模式打破继承束缚优雅实现多维度变化
2023-08-23 09:00:34
C# 获取系统进程的用户名
2022-12-06 02:38:03
JDK源码之PriorityQueue解析
2022-05-15 17:17:15
![](https://img.aspxhome.com/file/2023/1/63741_0s.png)
mybatis-plus用insertBatchSomeColumn方法批量新增指定字段
2022-03-02 10:20:58
![](https://img.aspxhome.com/file/2023/0/61250_0s.png)
一篇超详细的Spring Boot整合Mybatis文章
2022-01-27 10:02:58
![](https://img.aspxhome.com/file/2023/3/72313_0s.jpg)
详解Flutter桌面应用如何进行多分辨率适配
2023-06-17 07:14:59