博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WinForm 清空界面控件值的小技巧
阅读量:6801 次
发布时间:2019-06-26

本文共 1387 字,大约阅读时间需要 4 分钟。

原文:

在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextBox控件比较多的时候,代码里面是不是要设置每个控件的Text属性值为空呢?下面我用这个例子,来探讨下清空界面控件值的小技巧。而且还能复用。不必每个窗体都做这些枯燥、无聊的工作。

一般的做法是在清除控件的事件里面添加下面这样的代码:

ExpandedBlockStart.gif
代码
       
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);
}

 

 

ExpandedBlockStart.gif
代码
///
 
<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
;
                    }
                }
            }
        }

 

 

 

 

转载地址:http://kkywl.baihongyu.com/

你可能感兴趣的文章
【干货】程序员常访问的国外技术交流网站汇总
查看>>
HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
查看>>
Java直接内存与非直接内存性能测试
查看>>
linux watchdog demo hacking
查看>>
[LintCode] 最长上升子序列
查看>>
TP v5中Request取值方式变化
查看>>
日志分析系统——Hangout源码学习
查看>>
第 4 章 Windows Server
查看>>
网站平台架构演变史(三) - 数据库表的查询优化
查看>>
5.9. sort - sort lines of text files
查看>>
深入理解line-height与vertical-align(1)
查看>>
到目前为止给DataGrid添加Number列最简单方法
查看>>
《快学Scala》第六章 对象 第七章 包和引入
查看>>
RabbitMQ学习系列(二): RabbitMQ安装与配置
查看>>
php将对象数组转成普通数组
查看>>
unity htc vive使用
查看>>
★商场上的十则寓言故事!
查看>>
如何将北京时间批量转为Unix时间?用Excel!
查看>>
代码备份:处理 SUN397 的代码,将其分为 80% 训练数据 以及 20% 的测试数据...
查看>>
如何利用phpize在生产环境中为php添加新的扩展php-bcmath
查看>>